Как сделать процедуру, хранящуюся в MySQL, которая вставляет идентификатор из одной таблицы в другую? - PullRequest
0 голосов
/ 06 июля 2018

Как сделать хранимую в MySQL процедуру, которая вставляет идентификатор из одной таблицы в другую?

Как создать хранимую процедуру в mysql, которая позволяет проверять, найдены ли повторяющиеся данные, и если это так, чтобы иметь возможность зарегистрироваться в двух связанных таблицах, в противном случае вставить в таблицу только идентификатор?

У меня работает следующий скрипт SQL, если cc не найден в базе данных и не вставлен в две таблицы, но если переменная 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 голосов
/ 14 июля 2018

вы можете установить последний идентификатор вставки, а затем использовать этот последний идентификатор вставки в качестве значения во второй таблице, например ..

set o_maxId = (выберите LAST_INSERT_ID ());

вставить во второе имя таблицы (имя столбца,.,.,.,) Значения (значение1.,., O_maxId);

...