发布网友 发布时间:2022-04-07 23:16
共2个回答
懂视网 时间:2022-04-08 03:37
删除和更新时对应的操作是一样的
1 Restrict 禁止删除被引用的行 (不能将约束检查推迟到事物的晚些时候)
2 No Action 如果存在任何引用行,则抛出错误,如果不声明任何行为则No Action就是缺省行为 (允许约束检查推迟到事物的晚些时候)
3 Cascade 在删除一个被引用的行时,引用他的行被自动删除
4 Set Null (外键上才有) 删除被引用行时,引用他的字段设置为NULL
5 Set Default (外键上才有) 删除被引用行时,引用他的字段被设置为缺省值
注意:一个动作声明为Set Default 但是缺省值并不能满足外键,那么动作就会失败
PostgresSQL中的限制和级联删除
标签:
热心网友 时间:2022-04-08 00:45
触发器方式: create trigger trg_A on A for update,delete as begin if exists(select 1 from inserted) update B set Name=(select Name from inserted) where Name=(select Name from deleted) else delete B where Name=(select Name from deleted) end go 要使用级联性更新和删除,用户可以在Alter TABLE 语句的CONSTRAINT子句中使用ON Update CASCADE 和/或 ON Delete CASCADE 关键字。注意他们都必须是应用于外键的。 级联更新和级联删除方式: Alter TABLE [dbo].[T_USERGROUP] ADD CONSTRAINT [FK_T_USERGROUP_T_ACCTTEMPLATE] FOREIGN KEY ( [ATNAME] ) REFERENCES [dbo].[T_ACCTTEMPLATE] ( [ATNAME] ) ON Update CASCADE ON Delete CASCADE