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

laravel5.6约束示例

场景 如果现在有两张表,一张表是文章表articles,一张表是分类表categories,其中在文章表中有一个分类字段category_id,现在想在删除分类表某一分类时,该分类下所有文章也一起被删除...,那么这时候就可以用到外约束 具体用法如下: 给文章表添加约束 $table- unsignedInteger('category_id')- comment('文章所属分类|select');...$table- foreign('category_id')- references('id')- on('categories')- onDelete('cascade'); 其中需要注意是分类表categories...主键字段id文章表articles字段category_id数据类型或者是数据长度要保持一致,因为作为主键id值是从1开始自增,所以在被其绑定字段数据类型就不能使用integer...,而要改用unsignedInteger 以上这篇laravel5.6约束示例就是小编分享给大家全部内容了,希望能给大家一个参考。

1.7K31

django在开发取消约束实现

# 在setting设置 'OPTIONS': { "init_command": "SET foreign_key_checks = 0;", } 补充知识:django-给关系传值...,删除外关系 反查: 在表关系里 related_name = ‘反查name’,自己不设置,django也会默认设置为class小写名字+_set , ex: book_set....一对一关系赋值: class ModelStudy(View): ''' ClassRoom和ClassNumber是一对一关系,给传值 ''' def get(self, request):...(数据库字段名字room_number_id)值,将相对应值直接赋值给该字段      class_number = ClassNumber.object.get("id=1").room_number...s.teacher.remove(x) return HttpResponse("ojbk") 以上这篇django实现在开发取消约束就是小编分享给大家全部内容了,希望能给大家一个参考。

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

MySQL实战七:你不知道约束使用!

1.标准SQL语句 DML(Data Manipulation Language,数据操作语言) 语句:主要由select、insert、update和 delete 四个关键字完成。...2.2 2.2.1 创建 (1)不带别名,数据库自动生成 首先创建department表: CREATE TABLE department ( dept_name varchar...,用来设置当主键表被参考列数据发生变化时,响应字段变换规则。...学习 cascade 表示级联操作,就是说,如果主键表中被参考字段更新,表(子表)也更新,主键表(父表)记录被删除,表(子表)改行也相应删除。...而on update只能删除子表数据,不能删除父表主键数据,只能更新父表主键,同时父子表数据都会被更新,但是在子表上做更新操作无效。

4.3K20

SQL基础--> 约束(CONSTRAINT)

KEY 主键约束P 唯一标识出表每一行,且不允许空值值,一个表只能有一个主键约束 FOREIGN KEY 约束R 一个表列引用了其它表列,使得存在依赖关系,可以指向引用自身列...insert语句影响: 插入数据字段值必须在主表存在,只有从表才有可能违反约束,主表不会。...约束对delete语句影响: 删除主表数据时,如果从表有对该数据引用,要先将从表数据处理好。主表才有可能违反约束。...约束对update语句影响: 主从表都有可能违反约束,操作一个表必须将另一个表数据处理好。 约束对DDL语句影响: 删除主表时,才有可能违约约束。...,当主表一行数据被删除时,ORACLE自动将从表依赖于它记录也删除。

1.7K20

BI-SQL丨Constraints

[1240] Constraints Constraints,约束意思。通常用来约束加入表数据,如果与约束冲突,则行为会被终止。...INSERT INTO WHITETEST (TEST , ID) VALUES ( NULL , 13) 在数据仓库我们执行上述语句,会返回如下结果: [1240] 因为列限制了TEST不为空,因此数据无法更新...//多个列定义约束 ...... ) C.FOREIGN KEY 一个表,通常可以用来连接另外一张表主键。...那么Product表ProductID就是主键,Fact表ProductID就是。 同时,存在,可以防止意外删除。这对于数据仓库来说,很重要。...FOREIGN KEY () REFERENCES 表名称(主键)//多个列定义约束 ...... ) D.CHECK CHECK通常可以用来约束限制列值范围。

73720

六年开发经验,整理Mysql数据库技巧笔记,全网最详细笔记集合!

数据类型(长度) 约束, .... ) -- 查看某个数据库所有表 show tables; -- 查看表结构 desc 表名; -- 查看创建表SQL语句,看到是mysql生成语句...; 约束 建表时添加约束 CREATE TABLE 表名( 列名 数据类型 约束, ......CONSTRAINT 键名 FOREIGN KEY (本表列名) REFERENCES 主表名(主表主键列名) ); 删除外约束 ALTER TABLE 表名 DROP FOREIGN...KEY 键名; 建表后单独添加约束 ALTER TABLE 表名 ADD CONSTRAINT 键名 FOREIGN KEY (本表列名) REFERENCES 主表名(主键列名); 级联更新和级联删除...insert、update、delete 之前或之后触发并执行触发器定义 SQL 语句

1.4K20

mysql学习总结04 — SQL数据操作

字段主表主键字段类型完全一致 字段主表主键字段基本属性相同 如果是在表后增加,对数据有要求(从表数据主表关联关系) 只能使用innodb存储引擎,myisam不支持 12.4...约束概念 约束主要约束主表操作,从表仅约束不能插入主表不存在数据,约束约束了例如: 从表插入数据,不能插入对应主表主键不存在数据 主表删除数据,不能删除被从表引入数据 约束保证了数据完整性...(主表从表数据一致),强大数据约束作用可能导致数据在后台变化不可控,所以外在实际开发较少使用 12.5 约束模式 三种约束模式: district:严格模式,默认,不允许操作 cascade...:级联模式,一起操作,主表变化,从表数据跟随变化 set null:置空模式,主表变化(删除),从表对应记录设置为空,前提是从表对应字段允许为空 添加约束模式: 基本语法: add foreign...key() references () on ; 通常在进行约束时候时候,需要指定操作:update和delete 常用约束模式:on update cascade

5.1K30

day05_MySQL学习笔记_02

) FOREIGN KEY(foreign key:) REFERENCES(references:引用/参照/关联)       第二种添加约束方式:在表格创建时没有添加约束,之后通过修改表格添加约束...设计从表可以有两种方案:         方式1:在t_card表添加列(相对t_user表),并且给添加唯一约束;即:字段 字段类型 unique,         方式2:给t_card表主键添加约束...:在创建表格时候同时添加约束。...) FOREIGN KEY(foreign key:) REFERENCES(references:引用/参照/关联)       第二种添加约束方式:在表格创建时没有添加约束,之后通过修改表格添加约束...注意:在执行脚本时需要先行核查当前数据库表是否脚本文件语句冲突!   例如在脚本文件存在create table a语句,而当前数据库已经存在了a表,那么就会出错!

2.1K20

面试官:MySQL 唯一索引为什么会导致死锁?

自动增长 uniqueprimary key区别 简单讲,primary key=unique+not null 具体区别: (1) 唯一性约束所在列允许空值,但是主键约束所在列不允许空值。...(2) 可以把唯一性约束放在一个或者多个列上,这些列或列组合必须有唯一。但是,唯一性约束所在列并不是表主键列。 (3) 唯一性约束强制在指定列上创建一个唯一性索引。...(4) 建立主键目的是让来引用. (5) 一个表最多只有一个主键,但可以有很多唯一 存在唯一冲突时,避免策略 insert ignore insert ignore会忽略数据库已经存在数据...如果有两个事务并发执行同样语句,那么就会产生death lock,如 img 解决办法: 1、尽量对存在多个唯一table使用该语句 2、在有可能有并发事务执行insert 内容一样情况下不使用该语句...参考 Mysqluniqueprimary约束区别分析(转) MySQL避免插入重复记录:唯一性约束 MySQL优化–INSERT ON DUPLICATE UPDATE死锁 ---- 我是蜗牛

1.4K20

大型互联网公司使用数据库设计规范

约束设计标准 1、 主键内容不能被修改。 2、约束一般不在数据库上创建,只表达一个逻辑概念,由程序控制。...3、 禁用数据库 4、命名 a) 主键约束:默认PRIMARY; b) unique约束:UK_ c) check约束:CK_ d) 约束...2、SELECT语句只获取需要字段,禁止使用SELECT * FROM语句,这是有效防止新增字段对应用逻辑影响,还能减少对性能影响; 3、INSERT语句必须显式指明字段名称,不使用INSERT...6、写到应用程序里SQL语句,禁止一切DDL操作,如对这些权限有要求,必需DBA协商同意方可使用 7、WHERE条件必须使用合适类型,避免MySQL进行隐式类型转化,如ISENDED=1,字段类型是...10、避免使用存储过程、触发器、函数等,容易将业务逻辑和DB耦合在一起,并且MySQL存储过程、触发器、函数存在一定bug。 11、使用合理SQL语句减少数据库交互次数。

1.7K30

MySQL学习笔记汇总(四)——表约束、存储引擎、事务

(简称PK) 约束(foreign key):…(简称FK) 检查约束(check):注意Oracle数据库有check约束,但是mysql没有,目前mysql不支持该约束。...username varchar(255) ); 约束:foreign key 主要是维护表之间关系,主要是为了保证参照完整性,如果表某个字段为 字段,那么该字段值必须来源于参照主键...可以为NULL 被引用字段不一定是主键,但至少具有unique约束。...InnoDB 优点:支持事务、行级锁、等。这种存储引擎数据安全得到保障。...I:隔离性:事务A事务B之间具有隔离。 D:持久性:持久性说是最终数据必须持久化到硬盘文件,事务才算成功结束。

1.6K50

insert ... on duplicate key update 和 replace into

影响行数 = 0,表示插入记录和表记录存在主键或唯一索引冲突,并且 insert duplicate 语句 update 字段列表每个字段字段值和冲突记录对应字段值一样。...影响行数 = 2,表示插入记录和表记录存在主键或唯一索引冲突,但是 insert duplicate 语句 update 字段列表字段值和冲突记录字段值不一样,插入语句会更新表冲突第 1...旧记录用于第 3 步删除冲突记录,以及判断需要把插入记录哪些字段更新到表。 这一步和 insert duplicate 语句也是一样,因为在这一步它们执行是同一段代码,兄弟俩还没有分家。...使用更新旧记录方式,需要同时满足 3 个条件: 条件 1,第 2 步中报记录冲突那个索引是表中最后创建唯一索引(也可能是主键)。 条件 2,表所有字段,都没有被其它表字段作为约束。...约束和删除触发器都很少使用,不展开讲了。 4. 总结 2.

1.6K40

【MySql】表约束

我们选择某一列作为主键,但是并不排除其他属性不需要维护,可能需要用到唯一来限定,选择其他列作为唯一主键配合起来,能够保证一些数据冲突。...foreign key 用于定义主表和从表之间关系:约束主要定义在从表上,主表则必须是有主键约束或unique约束。...,上面的例子,我们不创建约束,就正常建立学生表,以及班级表,该有的字段我们都有。...因为此时两张表在业务上是有相关性,但是在业务上没有建立约束关系,那么就可能出现问题。 解决方案就是通过完成。...建立本质其实就是把相关性交给mysql去审核了,提前告诉mysql表之间约束关系,那么当用户插入不符合业务逻辑数据时候,mysql不允许你插入。

16530

数据库面试题汇总

MySQL基本索引类型 索引优缺点 事务 事务定义 事务性质 drop、deletetruncate 相同点 不同点 场景使用 超健、候选、主键、 超健 候选 主键 视图...FOREIGN KEY: 用于预防破坏表之间连接动作,也能防止非法数据插入列,因为它必须是它指向那个表值之一。 CHECK: 用于控制字段值范围。...场景使用 不再需要一张表时候,用drop 想删除部分数据行时候,用delete,并且带上where子句 保留表而删除所有数据时候用truncate 超健、候选、主键、 超健 在关系能唯一标识元组属性集称为关系模式...主键 数据库表对储存数据对象予以唯一和完整标识数据列或属性组合。一个数据列只能有一个主键,且主键取值不能缺失,即不能为空值(Null)。 在一个表存在另一个表主键称此表。...在查询完数据时候就把事务锁起来,直到提交事务 实现方式:使用数据库锁机制 乐观锁 假设不会发生并发冲突,只在提交操作时检查是否违反数据完整性 在修改数据时候把事务锁起来,通过version

1.9K21

一篇文章带你彻底了解MySQL各种约束

: 零填充约束 数据库中有三个完整性: 域、实体、参照完整性 域(列)完整性: 域完整性是对数据表字段属性约束 实体完整性在MySQL实现: 通过主键约束和候选约束实现 参照完整性: 也就是说是...- 被约束列,取值必须参照其主表列值 - 注意:通常先创建主表,再创建从表 添加约束 - create table emp(      ...,系统会自动地生成一个名称。...- 使用 show create table 表名 查看具体键名称 设置级联关系 - on delete cascade: 删除主表数据时,从表数据随之删除 - on update...); 注意: - 插入数据时,先插入主表数据,再插入从表数据 - 删除数据时,先删除从表数据,再删除主表数据 数据库设计 主键约束 自增长约束 约束(慎用) 唯一约束 非空约束

898127

Oralce二维表操作

Oralce二维表操作 –创建表并同时添加约束 –主键约束 –非空约束 –检查约束 –唯一约束约束 –简单表创建和字段类型 –简单创建语句: create table student...values(5,‘李四003’,18,‘男’,‘唱歌’,‘657889905’,3); –使用: –作用:当在子表插入数据在父表不存在,则会自动报错。...–概念:当一张表某个字段值需要依赖另外一张表某个字段值,则使用约束。 –其中主动依赖表称为子表,被依赖表称为父表。加在子表。...alter table 表名 drop constraints 约束名 –选取: –一般选取父表主键作为子表。...–缺点: –无法直接删除父表数据,除非级联删除 –级联删除:在添加约束时,使用关键字 on delete cascade –使用:当删除父表数据时,自动删除子表相关所有数据。

63820

珍藏 | Java 岗位 【数据库】 面试题及答案详解

· 唯一 · 主、 · 不为空 · 表之间关联字段 · 查询比较频繁字段 6:索引类型有哪些?...- 交叉连接: 笛卡尔效应,显示结果是链接表数乘积。 11:主键和区别?...· 主键在本表是唯一、不可唯空可以重复可以唯空; · 和另一张表主键关联,不能创建对应表不存在。 12:在数据库查询语句速度很慢,如何优化?...· 第一范式:列不可再分 · 第二范式:行可以唯一区分,主键约束 · 第三范式:表非主属性不能依赖与其他表非主属性约束,且三大范式是一级一级依赖,第二范式建立在第一范式上,第三范式建立第一第二范式上...delete区别 - TRUNCATE TABLE 在功能上不带 WHERE 子句 DELETE 语句相同:二者均删除表全部行。

3.3K20

MySQL数据篇之多表操作-----保姆级教程

多表操作 约束 添加 语法 注意 表表之间关系 子查询缺陷 一对多关系 一对多建表原则 多对多关系 多对多建表原则 一对一例子 一对一建表原则 多表案例分析 多表查询...---替代级联删除 join语句中使用USING代替on---键值同名 union联合查询 union all可以查询出所有,不进行去重操作 内连接连接区别 约束 作用:保证多表之间数据完整性...这个时候就需要在多表之间添加约束 ---- 添加 语法 在新表添加约束语法: constraint 约束名称 foreign key(字段名称) references 主表表名(...主键字段名) 在已有表添加约束:alter table 从表表名 add constraints 约束名称 foreign key(字段名称) references 主表表名(主键字段名...---- 右连接 恰左连接相反,返回右表所有行,如果右表中行在左表没有匹配行,则结果左表列返回空值。

1.2K10

MySQL 学习笔记(三):完整性和触发器设计

cascade, /*定义Cno为参考course表主键Cno,并且实现级联删除SC表相应元组 */ );  2....删除约束 删除主键约束:alter table 表名 drop primary key; 删除外约束:alter table 表名 drop foreign key (区分大小写);.../school/student' (errno: 150 - Foreign key constraint is incorrectly formed) 查了下资料,发现 MySQL建立字段必须和引用表字段一模一样类型...这里我创建时候 sno 中有些表有主键约束,有些却没有,所以当我删除主键约束时候它会提示被错误建立起来了。但我不明白为什么建立时候没有报错。...(二)触发器 MySQL包含对触发器支持。触发器是一种表操作有关数据库对象,当触发器所在表上出现指定事件时,将调用该对象,即表操作事件触发表上触发器执行。

1.4K40
领券