我想向表中添加一些内容(触发器?),以便确切地说,每个 ID 恰好有 1 行具有特定列的特定值。因此,如果运行了一条使情况并非如此的语句,则会引发异常并回滚插入。
让我们采用这个模式。
ID Current Value
1 Y 0
1 N 0
1 N 2
2 Y 2
我想要的约束是,对于每个 ID,只有一行的电流为“Y”。
因此,这些语句将不会被执行并返回适当的错误:
insert into table values (1,'Y',1);
insert into table values (3,'N',2);
update table set current = 'N' where ID = 1;
我有两个问题:
将这种约束逻辑编码到您的表中是一个好主意,还是最好为处理数据的应用程序保存?为什么?
如何做呢?oracle 提供了什么样的工具来创建这样的约束?