MYSQL - 如果不存在则插入表中,没有明显的主/唯一键

时间:2014-02-25 20:44:13

标签: mysql sql

我有一个包含2列的表,它们是'user'和'action',用于表示用户何时完成某个操作。只有在用户之前没有做出给定操作的情况下才能进行输入,因此我觉得以下内容是必需的:

IF NOT EXISTS (select * from actiontable WHERE user=1 and action=5) THEN 
INSERT INTO actiontable VALUES(1,5);

然而,这似乎是不正确的语法,我无法找到我应该怎么做。这可能吗?或者有没有办法使用主键或唯一键来实现这一目标?

1 个答案:

答案 0 :(得分:2)

您可以在用户,操作上创建主键,然后尝试

INSERT INTO actiontable (`user`,`action`) VALUES (1,5);

如果条目已存在,则会失败。如果您不想提出错误,可以尝试

INSERT IGNORE INTO actiontable (`user`,`action`) VALUES (1,5);