我有一个像这样的“用户”SQL 表结构(ID 是随机生成的,不是自动递增的):
ID name deleted lastActive
3242 Joe 0 20-6-2012 23:14
2234 Dave 0 20-6-2012 23:13
2342 Simon 1 20-6-2012 23:02
9432 Joe 1 20-6-2012 22:58
可以有多个已删除 (deleted=1) 的同名用户,但只有 1 个未删除的同名用户(所以添加 Simon 可以,但 Dave 不行)。只有在一个 SQL 查询中没有同名且已删除 = 0 的记录时,如何才能插入?我需要这样的东西:
INSERT INTO users (ID, name) VALUES ($id, $name)
WHERE NOT EXISTS (SELECT 1 FROM users WHERE name = $name AND deleted = 0)
但这不是正确的语法。