如何在MySQL中存储一个将ID从一个表插入到另一个表的过程?

时间:2018-07-06 03:29:16

标签: sql database stored-procedures phpmyadmin mysql-workbench

如何在MySQL中存储一个将ID从一个表插入到另一个表的过程?

如何在mysql中制作一个存储过程,该存储过程允许验证是否找到重复的数据,以及是否能够在两个相关的表中注册,否则只能在表中插入id?

如果在数据库中找不到cc并将其插入两个表中,则我有以下SQL脚本可以工作,但是如果cc变量在数据库中不起作用,谢谢

DROP PROCEDURE IF EXISTS `owners_add`;
DELIMITER $$
CREATE PROCEDURE owners_add(
IN `@name` varchar(35),
IN `@last` varchar(35),
IN `@cc` int(12),
IN `@cell_phone` varchar(15))
BEGIN
  DECLARE id_people INT DEFAULT 0;
  SET id_people=(SELECT id  FROM people WHERE cc=@cc);
  IF(id_people IS NULL) THEN
     INSERT INTO people(name,last,cc,cell_phone) 
                VALUES(`@name`,`@last`,`@cc`,`@cell_phone`);
     SET @ID = LAST_INSERT_ID();
     INSERT INTO owners(id) VALUES(@ID);
  ELSE
     INSERT INTO owners(id) VALUES(id_people);
  END IF; 
  END$$

1 个答案:

答案 0 :(得分:0)

您可以设置最后一个插入ID,然后将最后一个插入ID用作第二个表中的值,例如..

设置o_maxId =(选择LAST_INSERT_ID());

插入第二个表名(列名,。,。,。)values(value1。,。,o_maxId);