Mysql 如何在一个表中检查记录并在另一个表中插入?

Mysql 如何在一个表中检查记录并在另一个表中插入?,mysql,if-statement,stored-procedures,mysql-workbench,Mysql,If Statement,Stored Procedures,Mysql Workbench,我尝试在MySQL中创建此过程,它应该: 检查customer\u details表中的customerID是否匹配,以及 如果为true,则应在表customer_checkin中添加customer_id 但我在最后一行得到一个错误:值(customer_id);上面说: 错误代码:1064。您的SQL语法有错误;请查看与MySQL服务器版本对应的手册,以了解第4行“”附近要使用的正确语法 将鼠标悬停在代码错误上表示:语句不完整,应为“;” (客户id)最后一行的括号带下划线 如何解决这

我尝试在MySQL中创建此过程,它应该:

  • 检查customer\u details表中的customerID是否匹配,以及
  • 如果为true,则应在表customer_checkin中添加customer_id
但我在最后一行得到一个错误:值(customer_id);上面说:

错误代码:1064。您的SQL语法有错误;请查看与MySQL服务器版本对应的手册,以了解第4行“”附近要使用的正确语法

将鼠标悬停在代码错误上表示:语句不完整,应为“;”
(客户id)
最后一行的括号带下划线


如何解决这个问题?

试试这个。你失去了一个终点,如果

我会将if子句改写为


但是,Oiliver只适用于插入if子句是不必要的

试试这个。你失去了一个终点,如果

我会将if子句改写为


但是Oiliver只对插入if子句是正确的

我不太理解select
BEGIN
和no
END的意义可能。
插入客户登记(customerID)从客户详细信息中选择客户id,其中c.customerID=客户id限制1将在更短的时间内完成此工作way@OlivierDepriester对不起,开始不应该是there@OlivierDepriester成功了!!谢谢!:)我真的不明白选择
开始
和否
结束的意义可能。
插入客户登记(customerID)从客户详细信息中选择客户id,其中c.customerID=客户id限制1将在更短的时间内完成此工作way@OlivierDepriester对不起,开始不应该是there@OlivierDepriester成功了!!谢谢!:)当我尝试使用begin end时,
end if
end
出现错误。是因为我使用的是MySQL工作台吗?是的,我同意Olivier的建议。谢谢你的回答,@nbk!所以我又试了一次,现在可以用了,但我不得不更改代码中的分隔符。然后,请注意,当我尝试使用begin end时,
end if
end
出现了错误。是因为我使用的是MySQL工作台吗?是的,我同意Olivier的建议。谢谢你的回答,@nbk!所以我又试了一次,现在可以用了,但是我不得不更改代码中的分隔符。那么请
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); 

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