我在 mysql 过程中遇到语法问题
CREATE PROCEDURE savep(
IN p_uuid VARCHAR(36),
IN p_sp INTEGER,
IN p_cd VARCHAR(250)
)
BEGIN
INSERT INTO maintable
(
uuid,
sp,
cd,
last_time_saved
)
VALUES
(
p_uuid,
p_sp,
p_cd,
now()
)
ON DUPLICATE KEY UPDATE
sp = VALUES(p_sp),
cd = VALUES(p_cd),
cd = VALUES(now()); -- syntaxerror, unexcepted NOW_SYM
END -- syntax error, unexcepted END
我做错了什么? uuid 是主表中的主键。
最佳答案
我可以看到两件小事。
您没有在顶部设置分隔符(但您可能在尝试使用的版本中设置了分隔符)。
其次,您在 on重复键子句中设置 cd 两次,其中之一是将其设置为 VALUES(now()) ,其中括号中应该是 a 的名称其值来自您要设置的插入的 VALUES 子句的列。
试试这个:-
DELIMITER //
CREATE PROCEDURE savep(
IN p_uuid VARCHAR(36),
IN p_sp INTEGER,
IN p_cd VARCHAR(250)
)
BEGIN
INSERT INTO maintable
(
uuid,
sp,
cd,
last_time_saved
)
VALUES
(
p_uuid,
p_sp,
p_cd,
now()
)
ON DUPLICATE KEY UPDATE
sp = VALUES(p_sp),
cd = VALUES(p_cd),
last_time_saved = now();
END
关于mysql,程序中的语法问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25791181/