SQLite-检查条件以匹配具有相同条件的记录?

时间:2015-11-17 16:44:54

标签: sqlite

说我有这个我在SQLiteStudio中构建的表

|ID|VAL|STRATEGY|
|1 |A  |LOWEST  |
|2 |A  |LOWEST  |
|3 |B  |PRIORITY|
|4 |B  |PRIORITY|
|5 |C  |LOWEST  |

战略的唯一有效值是LOWESTPRIORITY,因此我为此设置了此检查条件。

STRATEGY IN ('LOWEST','PRIORITY')

如果我将ID为1的记录更新为PRIORITY,我希望它失败,因为我希望VALUE A的两个记录都是PRIORITY。所有具有共同VALUE的记录都应位于同一STRATEGY

UPDATE STRATEGY_MAP SET STRATEGY = 'PRIORITY' WHERE ID = 1 /* This should fail*/ 

因此,如果我要更新两个记录,那么一切都会很好地验证。

UPDATE STRATEGY_MAP SET STRATEGY = 'PRIORITY' WHERE ID in (1,2)

OR ...

UPDATE STRATEGY_MAP SET STRATEGY = 'PRIORITY' WHERE VAL = 'A'

有没有一种简单的方法可以在SQLite中添加我之前的验证?我知道它可能会被MySQL中的触发器拉掉。但我希望我的SQLite原型数据库能够强制执行此规则。

0 个答案:

没有答案