【发布时间】:2021-08-31 11:21:39
【问题描述】:
我正在尝试更新 Mysql 中的数据或更新(如果存在)但我收到此错误:
#1064 - 您的 SQL 语法有错误;查看与您的 MySQL 服务器版本相对应的手册,了解在 'delimiter; 附近使用的正确语法;
调用 insertIfNotNull((SELECT checkin_id FROM `_9' at line 1
这是我用来更新或插入数据的查询:
DROP FUNCTION IF EXISTS insertIfNotNull;
delimiter $$
create function insertIfNotNull(checkin int(11))
returns int
BEGIN
IF checkin IS NOT NULL THEN
UPDATE `_914_table_checkin` SET clock_in = '2021-6-15 12:09:20', break_in = 'null', break_out = 'null', clock_out = '2021-6-15 12:09:41' WHERE checkin_id = checkin ;
ELSE
INSERT INTO `_914_table_checkin` (company_id, manager_id, worker_id, added_by, clock_in, break_in, break_out, clock_out, date) VALUES (4,214,225,'manager','2021-6-15 12:09:13','null','null','2021-6-15 12:09:34','2021-6-15');
end if;
return 2;
END
$$
delimiter;
call insertIfNotNull((SELECT checkin_id FROM `_914_table_checkin` WHERE company_id = 4 AND manager_id = 214 AND worker_id = 214 AND date = '2021-6-15'))
【问题讨论】:
-
我想知道问题是否在于您使用的 API 只需要一个语句。
-
我直接从 phpMyadmin 试试
-
2021-6-15 12:09:20可能是一个有效的日期?2021-06-15 12:09:20 -
有效。当我将其用作单独的语句时,它可以工作,例如
UPDATE _914_table_checkin SET clock_in = '2021-6-15 12:09:20', break_in = 'null', break_out = 'null', clock_out = '2021-6-15 12:09:41' WHERE checkin_id = 200 ; -
我认为你只需要在分隔符后留一个空格
标签: java android mysql sql database