INSERT EXERE EXRES

时间:2015-12-17 23:13:33

标签: mysql insert exists

对于MySQL,如果我将用户标识和令牌存储在user表中,并且只允许在提供的用户标识和标记匹配的情况下在另一个表中插入记录。我试过了

INSERT INTO product(description) 
VALUES('123') 
WHERE EXISTS 
  (SELECT 1 FROM users where userid='myuserid' AND token='ABCD')

以下SQL语句产生错误 “检查与您的MySQL服务器版本相对应的手册,以便在'WHERE EXISTS附近使用正确的语法(SELECT 1 FROM userid = '29')'”

但是对于更新,我可以使用

成功更新
UPDATE product 
SET description='123' 
WHERE EXISTS 
  (SELECT 1 FROM users where userid='myuserid' AND token='ABCD')

任何专家都可以帮忙提供建议。 在进行插入之前,我需要最有效的方法来验证用户令牌是否正确。

1 个答案:

答案 0 :(得分:0)

请尝试使用触发器:

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