CREATE PROCEDURE update_table(
IN choice INT(4),
IN id VARCHAR(50),
IN string VARCHAR(50)
)
BEGIN
UPDATE salesman
set salesman_name = IF(choice = 1, string, salesman_name)
where salesman_id = id
UPDATE salesman
set date = IF(choice = 2, string, date)
where salesman_id = id
END
如果choice
为1,则将salesman_name更改为string
如果choice
为2,则将日期更改为string
单个update
可以正常工作,我猜是有另一种方法可以实现,但我不能。
if choice = 1 then
update salesman set salesman_name = string where salesman_id = id
...我也试过这个版本,但仍然没有工作。
DELIMITER //
CREATE PROCEDURE update_table(
IN choice INT(4),
IN id VARCHAR(50),
IN string VARCHAR(50)
)
BEGIN
UPDATE salesman set salesman_name = IF(choice = 1, string, salesman_name) where salesman_id = id;
UPDATE salesman set date = IF(choice = 2, string, date) where salesman_id = id;
END //
DELIMITER ;
您的SQL语法出错;检查与MySQL服务器版本对应的手册,以便在第1行的“DELIMITER”附近使用正确的语法
也这样说:
错误:未知的标点字符串@ 11 (最后一行)
答案 0 :(得分:0)
当存储过程有多个语句时,它们需要以;
终止要做到这一点,您需要暂时更改分隔符,以便结束该过程。这是一个SO答案,其中包含如何执行此操作的示例:MySQL create stored procedure syntax with delimiter