Как проверить запись в одной таблице и вставить в другую таблицу? - PullRequest
1 голос
/ 30 апреля 2020
create procedure checkin_customerid(in customer_id int) 
    if (select c.customerID from customer_detail c
    where customer_id = c.customerID)
    then 
    insert into customer_checkin (customerID)
    values (customer_id); 

Я пытаюсь создать эту процедуру в MySQL, которая должна:

  • проверить, есть ли совпадение для customerID в таблице customer_details и
  • , если true, следует добавить customer_id в таблицу customer_checkin.

Но я получаю сообщение об ошибке в последней строке: values ​​(customer_id); в котором говорится:

Код ошибки: 1064. У вас ошибка в синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, чтобы найти правильный синтаксис для использования рядом с '' в строке 4

Ошибка при наведении курсора на код говорит: оператор не завершен, ожидая ';' Скобка в последней строке для (customer_id) подчеркнута.

Как мне решить эту проблему?

1 Ответ

0 голосов
/ 30 апреля 2020

Попробуйте это. У вас отсутствует END IF;

И я бы переписал условие if в EXISTS

CREATE PROCEDURE checkin_customerid(in customer_id int) 
BEGIN
    if (EXISTS(select c.customerID from customer_detail c
        where customer_id = c.customerID))
    then 
        insert into customer_checkin (customerID)
        values (customer_id); 
    END IF;
 END

Но Oiliver подходит только для вставки, если предложение if не является необходимо

...