对于MySQL,如果我将用户ID和令牌存储在user
表中,并且仅在提供的用户ID和令牌匹配时才允许在另一个表中插入记录。
INSERT INTO product(description)
VALUES('123')
WHERE EXISTS
(SELECT 1 FROM users where userid='myuserid' AND token='ABCD')
以下SQL语句产生错误
“检查与您的MySQL服务器版本相对应的手册,以在'WHERE EXISTS(从用户ID为'29'的用户中选择1个)附近使用正确的语法”
但是对于更新,我可以成功更新
UPDATE product
SET description='123'
WHERE EXISTS
(SELECT 1 FROM users where userid='myuserid' AND token='ABCD')
可以请任何专家帮助指教。
在执行插入操作之前,我需要最有效的方法来验证用户令牌是否正确。
最佳答案
请尝试使用触发器代替:
CREATE TRIGGER tokenValidator
BEFORE INSERT
ON product
FOR EACH ROW BEGIN
IF (SELECT 1 FROM users where userid='myuserid' AND token='ABCD') THEN
INSERT INTO product(description) VALUES('123')
END IF