mysql过程,用于从另一个表中进行选择

时间:2019-03-25 16:05:13

标签: mysql

我想创建一个为用户创建课程的过程,该过程采用一个参数userid,而另一个值将从tbl_chapter中选择。共有27个章节选中,将执行27个插入。插入将类似于INSERT INTO tbl_user_chapter(user_id,chapter_id) VALUEs (9 , 1),(9,2),(9,3),...。 我想要这样的东西:

CREATE PROCEDURE createCourse (IN userid_param int)
BEGIN
INSERT INTO tbl_user_chapter(tbl_user_chapter.user_id,tbl_user_chapter.chapter_id) VALUE(userid_param , SELECT id FROM tbl_chapter)
END

SELECT id FROM tbl_chapter将是多行。

我知道这是错误的,我需要帮助。

如果有更好的方法可以做到这一点,请告诉我。

1 个答案:

答案 0 :(得分:3)

如果选择不返回任何一行,则不要使用cas.ticket.tgt.maxTimeToLiveInSeconds=7200 cas.ticket.tgt.timeToKillInSeconds=7200 语法。使用VALUES( )语法:

INSERT ... SELECT

确保CREATE PROCEDURE createCourse (IN userid int) BEGIN INSERT INTO tbl_user_chapter(user_id,chapter_id) SELECT userid, id FROM tbl_chapter; END 与tbl_chapter表中同名的列不冲突。如果存在具有该名称的列,则应更改存储过程的IN参数。