mysql—表中的新行,包含来自其他表的一些(但不是全部)信息

ycggw6v2  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(325)

我试图在一个表中输入一行,该行从其他几个表以及外部参数中收集信息。存储过程应该是这样的,尽管要长得多:

DROP PROCEDURE IF EXISTS sp1;

DELIMITER $$

CREATE PROCEDURE sp1(IN para1 INT, IN para2 INT,IN para3 INT)

BEGIN

INSERT INTO table100 VALUES(
NULL, #AaS_id, Auto_Increment
DEFAULT, #AaS_ts, Def
SELECT info1 FROM table2 WHERE id1 = para1,
SELECT info2 FROM table3 WHERE id2 = para2, 
para3);

END$$

DELIMITER ;

sql不喜欢“select”。有什么帮助吗,因为这种方法不起作用?泰晤士河,真的。

wgeznvg7

wgeznvg71#

一种方法是将两个子查询的结果存储到变量中,然后插入它们:

DROP PROCEDURE IF EXISTS sp1;

DELIMITER $$

CREATE PROCEDURE sp1 (IN para1 INT, IN para2 INT,IN para3 INT)

BEGIN
    DECLARE i1 VARCHAR(100)
    DECLARE i2 VARCHAR(100)

    SELECT info1 INTO i1 FROM table2 WHERE id1 = para1
    SELECT info2 INTO i2 FROM table3 WHERE id2 = para2

    INSERT INTO table100
    VALUES (NULL, DEFAULT, i1, i2, para3);

END$$

DELIMITER ;

相关问题