mysql - 如何在单个过程中编写多个插入查询?

标签 mysql stored-procedures

如何在单个过程中编写多个插入查询?

CREATE DEFINER=`root`@`localhost` PROCEDURE `Proc_Insert`(IN `newt` VARCHAR(500), IN `news` TEXT, IN `status` VARCHAR(500), IN `ntype` VARCHAR(500), IN `img_file` VARCHAR(1500), IN `vlink` VARCHAR(500))
INSERT INTO tbl_news(newt, news, status, ntype) VALUES (newt,news,status,ntype);
SET LID = LAST_INSERT_ID();
INSERT INTO tbl_img(pic, cid, imgfile, imgtype, imgstatus) VALUES (LID,LID,img_file,ntype,status);
INSERT INTO tbl_video(cid, vlink, vdis, vstatus) VALUES (LID,v_link,news,status);

这是我第一次使用这个存储过程。

最佳答案

您必须用 beginend 将语句括起来,并添加所需的所有语句:

DELIMITER $$
CREATE PROCEDURE `Proc_Insert`(IN `newt` VARCHAR(500), IN `news` TEXT, IN `status` VARCHAR(500), IN `ntype` VARCHAR(500), IN `img_file` VARCHAR(1500), IN `vlink` VARCHAR(500))
BEGIN
    DECLARE LID INT;

    INSERT INTO tbl_news(newt, news, status, ntype) VALUES (newt,news,status,ntype);
    SET LID = LAST_INSERT_ID();
    INSERT INTO tbl_img(pic, cid, imgfile, imgtype, imgstatus) VALUES (LID,LID,img_file,ntype,status);
    INSERT INTO tbl_video(cid, vlink, vdis, vstatus) VALUES (LID,v_link,news,status);
END$$

关于mysql - 如何在单个过程中编写多个插入查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42602494/

相关文章:

mysql - 如何在存储过程 WHERE 子句中使用 IF/CASE 语句

mysql - 创建过程并将变量设置为查询时出错

mysql - mysql中的计算字段?

mysql按组选择订单号

mysql - BETWEEN 条件下的不同日期格式

MySQL 限制、组和 AVG 查询

mysql - 主从服务器上的位置未更新

mysql - 在mysql中截断表

mysql - 存储过程,如何处理错误代码: 1062

php - 根据所需条件过滤表中的数据