首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【Django 2.2文档系列】Model on_delete参数用法

场景 我们用DjangoModel时,有时候需要关联。关联时,参数:on_delete几个配置选项到底是干嘛呢,你知道吗? 参数介绍 models.CASCADE 级联删除。...Django会模拟SQL约束行为,在删除此条数据时,同事删除外关联对象。...比如:用户有一个关联是用户健康记录,当用户删除时,配置了这个参数健康记录中跟这个用户有关数据也会被删除。...当数据被删除时,被关联内容被设置为null。 models.SET_DEFAULT 将值设置为默认值。必须设置有默认值 。...如果后端数据库有强制关联操作,这是容易报错:IntegrityError,除非你在数据库中手动添加了SQLON DELETE约束

1.9K10

SQL之间关系

SQL之间关系要在之间强制执行引用完整性,可以定义。修改包含约束时,将检查约束。定义有几种方法可以在InterSystems SQL中定义:可以定义两个类之间关系。...定义关系会自动将约束投影到SQL。可以在类定义中添加显式定义(对于关系未涵盖情况)。可以使用CREATE TABLEALTER TABLE命令添加。...默认情况下,InterSystemsIRIS®数据平台对INSERT,UPDATEDELETE操作执行引用完整性检查。...默认情况下,当删除带有行时,InterSystems IRIS将在相应被引用获取长期(直到事务结束)共享锁。这样可以防止在引用行DELETE事务完成之前对引用行进行更新删除。...如果使用NoCheck定义,或者使用%NOCHECK%NOLOCK指定引用行DELETE,则不会获取此锁定。

2.4K10
您找到你想要的搜索结果了吗?
是的
没有找到

SQL基础--> 约束(CONSTRAINT)

当对该进行DML 操作时,如果操作违反约束条件规则,ORACLE就会拒绝执行,并给出提示。...约束:可引用一个多个列,并且它属于定义一部分,可定义除NOT NULL其它约束。...insert语句影响: 插入数据字段值必须在主表中存在,只有从才有可能违反约束,主表不会。...约束delete语句影响: 删除主表数据时,如果从有对该数据引用,要先将从数据处理好。主表才有可能违反约束。...约束update语句影响: 主从都有可能违反约束,操作一个必须将另一个数据处理好。 约束对DDL语句影响: 删除主表时,才有可能违约约束

1.7K20

数据库面试题汇总

MySQL基本索引类型 索引优缺点 事务 事务定义 事务性质 drop、delete与truncate 相同点 不同点 场景使用 超健、候选、主键、 超健 候选 主键 视图...,delete 数据控制 grant,revoke 完整性约束 实体完整性、参照完整性、用户定义完整性 SQL约束 NOT NULL: 用于控制字段内容一定不能为空(NULL)。...可以一定程度上确保数据安全 存储过程缺点 每个数据库存储过程语法几乎都不一样,十分难以维护 业务逻辑放在数据库,难以迭代 索引 适合建索引 唯一、不为空、经常被查询字段 索引定义 索引是对数据库中一多个列值进行排序结构...场景使用 不再需要一张时候,用drop 想删除部分数据行时候,用delete,并且带上where子句 保留而删除所有数据时候用truncate 超健、候选、主键、 超健 在关系中能唯一标识元组属性集称为关系模式...主键 数据库中对储存数据对象予以唯一和完整标识数据列属性组合。一个数据列只能有一个主键,且主键取值不能缺失,即不能为空值(Null)。 在一个中存在另一个主键称此

1.9K21

mysql建表语句_mysql如何查询建表语句

; alter table Course add foreign key(Cpno) references Course (Cno); 向中插入数据(由于Cpno是,故先添加参考列,再添加列...当插入数据违反了这个规则,就会产生ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint fails...如下图: 当要删除或者更新一条数据时,由于有外码约束,不可以直接使用delete或者update语句,需先取消外码约束,再进行操作,最后再恢复外码约束。.../*取消外码约束*/ set foreign_key_checks = 0; /*删除更新数据*/ delete/update from 名 where 条件; /*恢复外码约束*/ set foreign_key_checks...就以课程为例,要删除数据要经过三个步骤,取消约束,删除数据,恢复约束,但如果没有约束,就可以直接删除数据。因此,在以后设计数据库时候尽量避免外码约束使用。

8.3K20

SQLite3 笔记

SQLite insert 插入一行: 插入一组: 使用select结果插入 多行插入到新: 多行插入到新,一步到位: 非常有用临时: sqlite update 更新一条记录: update ...约束 SQLite  存储类 视图 索引 触发器 视图触发器:可更新视图 事务 冲突 SQLite insert 查看表结构: sqlite> .schema foods CREATE TABLE... foo set z=-3 where z=2; Error: CHECK constraint failed: foo sqlite> 约束 约束 http://www.sqlite.org/...TEXT 值是一个文本字符串,使用数据库编码(UTF-8、UTF-16BE  UTF-16LE)存储。 BLOB 值是一个 blob 数据,完全根据它输入存储。 视图 视图即虚拟,也称为派生。...,以新记录代替之 ignore  违反记录保持原貌,其它记录继续执行 fail  终止命令,违反之前执行操作得到保存 abort  终止命令,恢复违反之前执行修改 rollback终止命令和事务,

2K30

深入剖析:insert enq: TM – contention

结论:当无索引时 1,对子表insert操作所在事务没有完成前,对于父DML操作(INSERT/UPDATE/DELETE)都会因为不能获得对子表TM锁而出现enq: TM – contention...,当无索引时,对子表insert操作,会造成对父更新操作阻塞。...可以看到Session 2和Session 4都完成了update: Session 2: 这里我们看到,当无索引时,对子表insert操作,会造成对父更新操作阻塞,该阻塞直到子表insert...在Session 3中观察: 这里我们看到: 1,当无索引时,对子表insert操作,会造成对父更新操作阻塞,该阻塞直到子表insert事务结束,才自动释放。...4中对父update执行Ctrl+C,然后分别改为INSERT 和delete(dept)操作,观察一下 Session 4: Session 5 随之自动解锁,并报了正常违反约束错误

2.2K60

第13章_约束

# 6.4 特点 (1)从列,必须引用 / 参考主表主键唯一约束列 ​ 为什么?...emp引用了,所以部门1001字段对应记录就不能被删除 总结:约束关系是针对双方 添加了约束后,主表修改和删除数据受约束 添加了约束后,从添加和修改数据受约束 在从建立...,要求主表必须存在 删除主表时,要求从先删除,将从中外引用该主表关系先删除 # 6.7 约束等级 Cascade方式 :在父 update/delete 记录时,同步 update.../delete 掉子表匹配记录 Set null方式 :在父 update/delete 记录时,将子表匹配记录列设为 null,但是要注意子表列不能为 not null No...对于约束,最好是采用: ON UPDATE CASCADE ON DELETE RESTRICT 方式。

30630

MySQL 常用基础知识,多学一门技能,不求人

二、域完整性:保证指定列数据有效性,是指列输入有效性 实现方法 非空约束:NotNull 默认约束:Default 检查约束:Check(MySQL不支持) 三、约束:是指从某列与主表某列存在依附关系...约束:是指在主键关联强制加上一个约束,如果违反约束,则不允许该条数据修改。...注意:没有建立约束不等于没有 [sql] CREATE TABLE person( ### 设置id列为主键列:不能为null,同时不能重复,AUTO_INCREMENT表示设置主键列为自动增长列...,用从列去关联主表主键列。...也就是说从列出现内容必须是主表主键列出现内容。

45220

Mysql约束

是用来实现参照完整性,不同约束方式将可以使两张紧密结合起来,特别是修改或者删除级联操作将使得日常维护工作更加轻松。...如果父试图UPDATE或者DELETE任何子表中存在匹配键值,最终动作取决于约束定义中ON UPDATE和ON DELETE选项。...CASCADE: 从父中删除更新对应行,同时自动删除更新自中匹配行。ON DELETE CANSCADE和ON UPDATE CANSCADE都被InnoDB所支持。 2....SET NULL: 从父中删除更新对应行,同时将子表中列设为空。注意,这些在外列没有被设为NOT NULL时才有效。...约束使用最多两种情况: 1)父更新时子表也更新,父删除时如果子表有匹配项,删除失败; 2)父更新时子表也更新,父删除时子表匹配项也删除。

5.8K81

【数据库设计和SQL基础语法】--SQL语言概述--数据类型和约束

2.3 约束 约束(Foreign Key Constraint)是一种用于定义之间关系约束,确保一个与另一个主键匹配。...约束创建了两个之间引用,这种引用通常表示了之间关联关系。...约束有助于维护之间关系,确保在引用列中值存在于被引用主键列中。...此外,约束还可以定义级联操作,例如,当主键某行被删除时,与之相关相关行也可以被级联删除设置为 NULL。...UPDATE employees SET salary = 55000.75 WHERE employee_id = 1; 如果更新操作违反约束,将无法执行: -- 尝试更新数据违反约束,将无法执行

19110

Oracle学习笔记三

关联一定注意:   一定是主表主键   删时一定先删子表再删主表,如果直接删主表会出现由于约束存在无法删除问题 SQL> drop table orders drop table orders...级联删除在外约束要加上 on delete cascade如 constraint order detail order id fk foreign key(order_ id) references..., 必须唯一 非空约束 唯一约束 检查约束 check(条件) 在mysql中是可以写,但是mysql直接忽略了检查约束   约束:主要是用来约束A中记录,必须是存在于主表B中 --男...--强制删除(不建议使用) : 先删除外关联约束,然后再删除自己, 先删除product约束,再删除category drop table category cascade constraint...:   创建空间   创建用户   授权 创建   子查询创建 修改 : 添加列,删除列,修改列,修改列名, 修改约束:   主键约束,唯一约束,非空约束,检查约束约束 约束:

3.1K51

SQL命令 INSERT(三)

尝试这样做会导致SQLCODE-35,其中不允许基于带有CHECK选项条件切片视图(sample.myview)使用%msg INSERT/UPDATE/DELETE。...如果为唯一字段主键字段指定了重复值,或者未指定值并且第二次使用该字段默认值将提供重复值,则可能会发生此错误。SQLCODE-119%msg字符串包括违反唯一性约束字段和值。...插入不能包含值违反引用完整性字段,除非指定了%NOCHECK关键字,或者是用NOCHECK关键字定义。...此设置不适用于用NOCHECK关键字定义。 在INSERT操作期间,对于每个引用,都会在引用中相应获得一个共享锁。 在执行引用完整性检查和插入该行时,此行被锁定。...这确保了引用行不会在引用完整性检查和插入操作完成之间发生更改。 但是,如果指定了%NOLOCK关键字,则不会对指定引用中相应行执行锁操作。

2.4K10

Percona Toolkit系列 — pt-fk-error-logger

前言 pt-fk-error-logger,通过定时拉取和解析show engine innodb status相关信息,并将错误信息打印在屏幕 写到日志文件 写到,从而实现将所有发生违反约束错误都保存下来...--password:-p,密码 --charset:-A,字符集 --database:-D,数据库 --ask-pass:提示手动输入密码 --daemonize:后台运行 --dest:指定存储违反约束错误...--columns:违反约束错误存储列信息 --log:指定存储违反约束错误日志文件 --run-time:运行时间,默认永久 --interval:运行间隔,默认30s --iterations...:运行次数,默认无限 (3)DSN选项 h:IP地址 P:端口 S:套接字文件 u:用户名 p:密码 A:字符集 D:数据库 t: 场景模拟 (1)创建存储违反约束错误库和 mysql> show...再次插入测试数据,报错违反约束 mysql> insert into t2 values(12,12); ERROR 1452 (23000): Cannot add or update a child

761110

mysql常见选项和约束

参照完整性约束,保证一个两个之间参照完整性,是构建于一个两个字段或者是两个两个字段之间参照关系 注意: 具有约束值不能随便给,必须满足所引用主键取值 一张中可以定义多个...列默认可以给null值 父子表 所在叫做子表,从 所引用主键所在叫做父,主表 constraint emp_deptid_fk foreign_key(deptid) references...dept(deptid) 删除规则 当删除父行时,如果子表中有依赖被删除父行子行存在,那么就不允许删除,并抛出异常(默认对外使用on delete restricton delete...no action选项) 在定义约束时,可以通过使用on delete cascadeon delete set null来改变外加默认删除规则 on delete cascade:级联删除,...,ENUM只能选一个值,SET可以选择多个值 AUTO_INCREMENT 自增 缺点:当删除一条时会在删除一条基础加1,不会覆盖原来删除编号 列数值自动增长,列类型只能是整数类型 通常给主键添加自增长约束

10610

【MySQL】04_约束

创建(CREATE)时就指定约束的话,先创建主表,再创建从时,先删从先删除外约束),再删除主表 当主表记录被从参照时,主表记录将不允许删除,如果要删除数据,需要先删除从中依赖该记录数据...约束关系是针对双方 添加了约束后,主表修改和删除数据受约束 添加了约束后,从添加和修改数据受约束 在从建立,要求主表必须存在 删除主表时,要求从先删除,将从中外引用该主表关系先删除...约束等级 Cascade方式 :在父update/delete记录时,同步update/delete掉子表匹配记录 Set null方式 :在父update/delete记录时,将子表匹配记录列设为...null,但是要注意子表列不能为not null No action方式 :如果子表中有匹配记录,则不允许对父对应候选进行update/delete操作 Restrict方式 :同no action...对于约束,最好是采用: ON UPDATE CASCADE ON DELETE RESTRICT 方式。

2.4K20

MySQL 约束介绍

字段名 数据类型; 5、约束 限定某个某个字段引用完整性 从列,必须引用/参考主表主键唯一约束列 在创建约束时,如果不给约束命名,默认名不是列名,而是自动产生一个键名...创建(CREATE)时就指定约束的话,先创建主表,再创建从时,先删从先删除外约束),再删除主表 从列与主表被参照列名字可以不相同,但是数据类型必须一样,逻辑意义一致 在“...从”中指定约束,并且一个可以建立多个约束 当创建约束时,系统默认会在所在列上建立对应普通索引,索引名是约束名,删除外约束后,必须手动删除对应索引 CREATE TABLE...方式:在父update/delete记录时,同步update/delete掉子表匹配记录 Set null方式:在父update/delete记录时,将子表匹配记录列设为null,但是要注意子表列不能为...not null No action方式:如果子表中有匹配记录,则不允许对父对应候选进行update/delete操作 Restrict方式:同no action, 都是立即检查约束(如果没有指定等级

1.5K41

SQL命令 UPDATE(一)

如果插入请求失败由于违反唯一(字段(s)一些独特关键,存在这一行已经有相同值(s)为插入指定行),然后它会自动变成一个更新请求这一行,并插入更新使用指定字段值来更新现有的行。...尝试这样做会导致一个SQLCODE -35,其中%msg INSERT/UPDATE/DELETE不允许查看(sample.myview)基于带有检查选项条件分片。...如果更新将违反字段唯一性约束,则不能更新字段值。 试图更新一个字段(一组字段)值,使更新违反惟一性约束主键约束,将导致SQLCODE -120错误。...如果更新其中一个指定行会违反引用完整性(并且没有指定%NOCHECK), UPDATE将无法更新任何行,并发出SQLCODE -124错误。...如果是用NOCHECK关键字定义,则不适用。 不能用流数据更新非流字段。 这将导致SQLCODE -303错误,如下所述。 赋值 可以通过多种方式为指定列分配新值。

2.8K20
领券