【发布时间】:2013-11-05 22:47:16
【问题描述】:
我使用 myDBR 为我的数据库创建报告,并且我有一个用于一个报告的表单,我可以在其中为每个事件添加具有多个 DesignTypes 的新 Event。 p>
我有 3 个表:Events(EventID、Event、URL)、DesignType(DesignTypeID、DesignType ) 和 DesignTypeXEvents(DesignTypeXEventID、EventID、DesignTypeID)。
我的表单有 DesignTypes 复选框,应该将 EventID 和 DesignTypeID 插入到表 DesignTypeXEvents 中.但是,如果我选择了多个设计类型,我会收到一条错误消息,提示 子查询返回超过 1 行。如果我选择多个设计类型,有没有办法让 EventID 将自身复制到其他行中?
这是我的代码:
CREATE PROCEDURE `sp_DBR_events_create`(
inEvent varchar(70),
inEventURL varchar(70),
inDesignType text
)
BEGIN
INSERT INTO Events (Event, URL)
VALUES (inEvent, inURL);
set @vSQL = concat('insert into DesignTypeXEvents (EventID,
DesignTypeID) values ((SELECT MAX(EventID) FROM Events),
(select DesignTypeID from DesignTypes where DesignTypeID in
(', inDesignType, ')))');
prepare stmt from @vSQL;
execute stmt;
deallocate prepare stmt;
如果我不包含 EventID,此代码效果很好并将正确的 DesignTypeID 插入到多行中,但我当然需要 事件ID。
【问题讨论】:
标签: mysql insert foreign-keys mydbr