foreignkey(cno)referencesclass(cno)ondeleterestrict) 表class中,con列是主键,表student中,sno是主键,cno外键,外键取值如上面说过的右2种 情况1.要在主键中出现过2.该外键取值位null,上述表student外键加了restrict关键字所以当从表class(主键)删除一条数据,刚好表student中有该班级的学生,则会报错,不允许删除 第...
[ON DELETE {RESTRICT |CASCADE| SETNULL|NOACTION | SET DEFAULT}] [ON UPDATE {RESTRICT |CASCADE| SETNULL|NOACTION | SET DEFAULT}] 其中,ON DELETE 和 ON UPDATE 表示事件触发限制,各参数意义如下: | 参数 | 意义 | | RESTRICT | 限制外表中的外键改动(默认值,也是最安全的设置) | | CASCADE | 跟...
create table student (sno int primary key, sname varchar(10), cno int, foreign key (cno) references class (cno) on delete restrict);如果试图删除class中的一个班级(cno),但student表中存在该班级的学生,由于restrict,删除操作会失败,以防止数据不一致性。相反,如果使用cascade关键字,on...
RESTRICT:如果有任何子记录与父记录关联,则不允许更新父记录。 NO ACTION:类似于RESTRICT,如果有子记录与父记录关联,则不允许更新父记录。 通过使用ON DELETE和ON UPDATE约束,可以确保父子表之间的数据关系保持一致性和完整性。
restrict和cascade都是在外码定义时指定的关键字。外码所指定的字段取值受限制,可以取两种值:所参照主...
2、NO ACTION(非活动,默认)、RESTRICT:约束/限制 当取值为No Action或者Restrict时,则当在主键表中删除对应记录时,首先检查该记录是否有对应外键,如果有则不允许删除。(即外键表约束主键表) 3、SET NULL 当取值为Set Null时,则当在主键表中删除对应记录时,首先检查该记录是否有对应外键,如果有则设置子表中该外...
在上述代码中,children表中的parent_id字段引用了parents表的id字段。ON DELETE RESTRICT表示,如果有任何children记录指向某个parents记录,则不允许删除这个parents记录。 使用RESTRICT的场景 RESTRICT约束通常用于需要保持父子关系完整的场景,例如: 家庭关系:在一个家庭数据库中,家长和子女表之间的关系。
NO ACTION:相当于RESTRICT。表示当父表中外键的引用列被删除或更新时,拒绝对父表的删除或更新操作。 创建外键时,如果未指定ON DELETE或ON UPDATE子句,则默认操作始终为NO ACTION。 SET NULL:表示当父表中外键的引用列被删除或更新时,将子表中对应行的外键列的值设置为NULL。
create table student(sno int primary key, sname varchar(10), cno int, foreign key(cno) references class(cno) on delete restrict)第一张表class中,cno是主码,第二张表student中,sno是主码,cno是外码,外码的取值必须在class的主码cno中出现过,或者取空值。注意,在外码定义时指定了...