我有一个包含2列的表,它们是'user'和'action',用于表示用户何时完成某个操作。只有在用户之前没有做出给定操作的情况下才能进行输入,因此我觉得以下内容是必需的:
IF NOT EXISTS (select * from actiontable WHERE user=1 and action=5) THEN
INSERT INTO actiontable VALUES(1,5);
然而,这似乎是不正确的语法,我无法找到我应该怎么做。这可能吗?或者有没有办法使用主键或唯一键来实现这一目标?
答案 0 :(得分:2)
您可以在用户,操作上创建主键,然后尝试
INSERT INTO actiontable (`user`,`action`) VALUES (1,5);
如果条目已存在,则会失败。如果您不想提出错误,可以尝试
INSERT IGNORE INTO actiontable (`user`,`action`) VALUES (1,5);