我需要在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')
这似乎是合乎逻辑的逻辑。这是一个有效的查询还是有更好的方法来做到这一点?
答案 0 :(得分:3)
只需在(block_file,settings_group)
列上创建UNIQUE索引,MySQL绝不允许您插入会复制这些值的行。
并回答这个问题:不,它根本不起作用。