检查行是否存在,如果不存在则添加[MySQL]

时间:2011-02-08 23:23:54

标签: mysql insert

我需要在MySQL数据库表中添加一行,但前提是该行尚不存在。我的数据库服务器刚刚关闭,所以我无法测试,但这会按预期工作吗?

INSERT INTO `blocks` (`block_file`,`settings_group`)
VALUES ('announcements','announcement_settings')
WHERE NOT EXISTS (SELECT `block_file`,`settings_group`
                  FROM `blocks`
                  WHERE `block_file`='announcements' AND `settings_group`='announcement_settings')

这似乎是合乎逻辑的逻辑。这是一个有效的查询还是有更好的方法来做到这一点?

1 个答案:

答案 0 :(得分:3)

只需在(block_file,settings_group)列上创建UNIQUE索引,MySQL绝不允许您插入会复制这些值的行。

并回答这个问题:不,它根本不起作用。