我有一个存储过程,它在我的本地 PC 上的语法上是可以接受的,在那里我有 MySQL 工作台 5.2.44,我认为我的本地 MySQL 版本是 5.5.29,从文件夹名称来看。这是代码,为了说明,我已将其减少到最低限度
DELIMITER $$
CREATE PROCEDURE `usp_insert_booking_test_2`(
IN p_dtmTimeSlot DATETIME
)
BEGIN
INSERT INTO tblBookings (dtmTimeSlot)
SELECT p_dtmTimeSlot
FROM tblBookings
WHERE NOT EXISTS (SELECT * FROM tblBookings WHERE dtmTimeSlot = p_dtmTimeSlot) LIMIT 1;
END$$
如您所见,我正在努力确保不会在同一时间段创建两个预订。是的,我对桌子也有限制。腰带和牙套。当我尝试在我的远程主机(运行 MySQL 版本 5.1.68-cll)上添加此过程时,它说
#1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 12 行的 '' 附近使用正确的语法
第 12 行是 WHERE NOT EXISTS 行。我试过删除 LIMIT 1,这没什么区别。有没有办法编写查询以便 MySQL 5.1 接受它?