SQL存储过程2插入语句,其中一个插入需要1个选择

时间:2014-11-02 17:27:31

标签: mysql sql-server stored-procedures

我的网站上有一个运行在MySQL Community Server (GPL) version 5.5.37

上的数据库

我想编写一个存储的precedure来在表1中插入图像,然后从最后一篇文章中选择id以在表2中插入该id。

我开始谷歌并最终得到了这个:


CREATE PROCEDURE InsertNewMedia( 
    IN insertLocatie varchar(255),
    IN insertNaam varchar(150), 
    IN insertOmschrijving longtext, 
    IN insertCategorieID  int
)

BEGIN

INSERT INTO MediaDB (idMediaDB, Locatie, Naam, Omschrijving) VALUES (NULL, insertLocatie, insertNaam, insertOmschrijving);

SELECT MAX(idMediaDB) AS Nieuwste FROM MediaDB;

INSERT INTO MediaLink (idMediaLink, OverMijShoots_idOverMijShoots, MediaDB_idMediaDB) VALUES (NULL, insertCategorieID, Nieuwste);

END

我知道这是一个错误的代码,但我找不到我需要的好东西。

任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

我认为您正在寻找LAST_INSERT_ID()

delimiter //
CREATE PROCEDURE InsertNewMedia(
    IN insertLocatie varchar(255),
    IN insertNaam varchar(150),
    IN insertOmschrijving longtext,
    IN insertCategorieID int
)

BEGIN
    INSERT INTO MediaDB(idMediaDB, Locatie, Naam, Omschrijving)
        VALUES (NULL, insertLocatie, insertNaam, insertOmschrijving);

     INSERT INTO MediaLink (idMediaLink, OverMijShoots_idOverMijShoots, MediaDB_idMediaDB)
        VALUES (NULL, insertCategorieID, LAST_INSERT_ID());

END//
delimiter ;