首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

【MySQL】外键约束删除和更新总结

外键约束删除/更新行为 行为 说明 NO ACTION 当在父表中删除/更新对应记录时,首先检查该记录是否有对应外键,如果有则不允许删除/更新。...主表字段名) on update cascade on delete cascade -- 添加外键约束并指定外键删除和更新行为 alter table emp add constraint...id改为6,emp表中id也会跟着改变 当我们删除父表中id为6,我们可以看到子表emp中存在外键关联数据也会被删除。...说明:如果子表与父表存在外键关联,删除父表数据也会影响子表。 演示2: 现在我们先删除刚刚创建emp和dept这两张表,然后重新创建。...-- 添加外键约束并指定外键删除和更新行为 alter table emp add constraint fk_emp_dept_id foreign key (dept_id) references

32010

MySQL删除约束_mysql查看表字段

字段名 drop default; desc ; 5.删除字段 (drop) alter table drop 字段名; desc ; 二、字段约束约束是对字段中数据进行限制,用于保证数据完整性,...从而符合该字段达到我们期望效果,如果插入数据不满足约束要求,数据库管理系统就会拒绝执行SQL 操作 常见约束约束条件含义NOT NULL约束字段值不能为空DEFAULT约束字段默认值UNIQUE...#创建表时候,添加默认约束 CREATE TABLE (字段名 数据类型 default ‘默认值’); #删除默认约束 alter table alter 字段名 drop default; 3....); #添加唯一约束 ALTER TABLE ADD unique(字段名); #删除约束 ALTER TABLE DROP INDEX 约束字段; 5.自增约束(AUTO_INCREMENT)自增长字段必须是...如发现本站有涉嫌侵权/违法违规内容, 请发送邮件至 举报,一经查实,本站将立刻删除

2.6K30

SQL 基础(二)数据表创建、约束、修改、查看、删除

数据表删除 Management Studio 删除表 SQL 指令删除表 数据类型 数据类型 含义 CHARACTER(n) 字符/字符串。...,限定某字段只能录入允许范围内值,既可表约束又可列约束 注意: 一个基本表中可定义多个 CHECK 一个字段仅能定义一个 CHECK 多个字段定义 CHECK 必须为表约束约束 -- CHECK...、减少列宽 仅能修改 NOT NULL 、NULL 约束,其他约束需要通过“删除后重新添加“方式完成修改 -- ALTER ALTER TABLE S ALTER COLUMN SN nvarchar...(12) DROP 仅用于删除完整性约束定义 -- DROP ALTER TABLE s3 DROP CONSTRAINT s_prim 数据表查看 右键 表 ,属性 查看表信息 数据表删除 Management...Studio 删除表 表存在依赖对象时,不可删除 SQL 指令删除表 仅可删除匹配用户建立表,用户权限要对应 -- 删除基本表 DROP TABLE s

93720

【说站】sql如何设置主键、如何删除主键约束

介绍一下在phpmyadmin下如何设置主键、删除主键。...ALTER TABLE `tmp2` ADD PRIMARY KEY( `id`); 也可以通过phpmyadmin界面进行操作,可以选择数据表,选择“结构”,选取需要设置主键字段,点击“主键”即可完成设置...设置好主键以后,可以看到主键名称后面有一把黄色钥匙,鼠标移动上去会有“主键”提示字样。下面也会显示有一个主键键名“PRIMARY”。...如果要删除上面的主键约束,可以直接点击上图下方删除”,修改主键可以选择“编辑”更改其他字段为主键。...当然也可以用以下命令来删除主键约束: ALTER TABLE `tmp2` DROP PRIMARY KEY; 收藏 | 0点赞 | 0打赏

2.9K20

oracle常用基础命令创建表多字段组合主键约束查看表主键名称 注意大写禁用开启主键约束删除约束等效上面

使用系统用户登录 [username/password][@server][as sysdba|sysoper] 查看登录用户 show user 启用scott用户 alter user scott...sizeM; # 临时表空间 create temporary tablespace $teblespace_name tempfile '$filepath' size $sizeM; 查看表空间路径...注意不能删除第一个否则全部删掉 alter tablespace $tablespace_name drop datafile '$filepath' size $sizeM; 删除表空间 # 仅仅删除表空间...not null, ... ) - 主键约束 create table $table_name ( column_name datatype primary key, ... ) 多字段组合主键约束...userinfo disable|enable contraint pk_userinfo_id_username; 删除约束 alter table userinfo drop contraint pk_name

1.4K50

MySQL数据库——表约束(非空约束、唯一约束、主键约束、外键约束)

目录 1 表约束 约束,是对表中数据进行限定,保证数据正确性、有效性和完整性,约束分为以下几类: 主键约束:primary key 非空约束:not null 唯一约束:unique 外键约束:foreign...); 2)创建表后再添加非空约束: ALTER TABLE stu MODIFY NAME VARCHAR(20) NOT NULL;  3)删除name非空约束: ALTER TABLE stu MODIFY...UNIQUE ); 注意:MySQL中唯一约束限定值可以有多个null 2)删除唯一约束: -- alter table stu modify number varchar(20); 不同于非空约束删除方法...在创建 表时添加主键约束,且完成主键自增长  CREATE TABLE stu( id INT PRIMARY KEY AUTO_INCREMENT, number VARCHAR(20) ); 删除自动增长...外键,就是从表中与主表主键对应那一列,如:员工表中dep_id,其中,主表是一方,用来约束别人表,从表可以是多方,被别人约束表。 注意:外键可以为NULL,但是不能是不存在外键值。 ?

13.5K21

mysql约束

在mysql设计表中,有个概念叫做约束 什么是约束 约束英文:constraint 约束实际上就是表中数据限制条件 约束种类 mysql约束大概分为以下几种: 非空约束(not null) 唯一性约束...主键约束 关于主键约束 表中某个字段添加主键约束后,该字段为主键字段,主键字段中出现每一个数据都称为主键值. 表中每一行都应该有可以唯一标识自己一列(或一组列)。...没有主键,更新或删除表中特定行很困难,因为没有安全方法保证只涉及相关行。...当表A想要删除一条记录时,必须先将表B数据删除(如果表B有数据),否则会报错 例如: create table member (   id       int auto_increment     primary...表:子表 创建先创建父表 删除删除子表数据 插入先插入父表数据 外键约束将会让mysql在插入,删除,更新会增加额外判断,严格来说,不允许使用外键约束,如果需要限制,请在代码层限制

2.1K10

XML约束——DTD

简单来说:文档类型定义(约束) 规范一点就是:是一套关于标记符语法规则。它是XML1.0版规格一部分,是XML文件验证机制,属于XML文件组成一部分。...XML文件提供应用程序一个数据交换格式,DTD正是让XML文件能成为数据交换标准,因为不同公司只需定义好标准DTD,各公司都能依DTD建立XML文件,并且进行验证,如此就可以轻易建立标准和交换数据...一些模式是随意组成(例如,本文中示例XML代码纯粹是即兴创作),而其他模式则由标准组织严格定义。...最基本模式通常也是最严格。在我示例XML代码中,将发行版名称放在节点中是没有意义,因为文档隐含模式清楚地表明 mascot必须是发行版“子”元素。 ) 3.XML两种文档约束(<!...这个问题是由DOM树结构所造成,这种结构占用内存较多) 4.XML格式要求(合法XML)     1)有且只有一个根节点;     2)由开始标签和结束标签组成;     3)XML标签区分大小写

49330

【MySql】表约束

概述 真正约束字段是数据类型,但是数据类型约束很单一,需要有一些额外约束,更好保证数据合法性,从业务逻辑角度保证数据正确性。比如有一个字段是email,要求是唯一。...表中一定要有各种约束,通过约束,让我们未来插入数据库表中数据是符合预期约束本质是通过技术收到逼迫程序员插入正确数据,反过来,站在mysql视角,凡是插入进来数据,都是符合数据约束。...约束最终目标:保证数据完整性和可预期性所以需要更多约束。...mysql> insert into test_key values (1,'刘备'); ERROR 1062 (23000): Duplicate entry '1' for key 'PRIMARY' 删除主键...外键foreign key 外键用于定义主表和从表之间关系:外键约束主要定义在从表上,主表则必须是有主键约束或unique约束

17130

【MySQL】表约束

约束约束:表中一定要有各种约束,通过约束,让我们未来插入数据库表中数据是符合预期约束本质是通过技术手段,倒逼用户,插入正确数据。...> name varchar(20) not null -> ); 查看表结构,id 字段为主键 主键约束:主键对应字段中不能重复,一旦重复,操作失败;例如: 删除主键: alter...table 表名 drop primary key; 例如删除上表主键: 当表创建好以后但是没有主键时候,可以再次追加主键: alter table 表名 add primary key(字段列表...;除此之外,如果我们删除了 class_id 为 20 班级,也是不会报错,因为它们之间没有约束关系,这也会导致我们可能删除了一个还有学生班级!...,会出现错误,因为外键约束: 我们再尝试删除一个还有同学班级:delete from class where class_id=10; 我们还可以插入一个班级 id 为空同学,代表目前还没有分配班级

10210

【MYSQL】表约束

前言 真正约束字段是数据类型,但是数据类型约束很单一,需要有一些额外约束,更好保证数据合法性,从业务逻辑角度保证数据正确性。比如有一个字段是email,要求是唯一。...'学号', name varchar(5) ); 创建好表之后,我们可以追加主键 2.删除主键 alter table 表名 drop primary key; 案例: 3.复合主键 在创建表时候...而我们设计员工工号时候,需要一种约束:而所有的员工工号都不能重复。 具体指的是在公司业务上不能重复,我们设计表时候,需要这个约束,那么就可以将员工工号设计成为唯一键。...unique约束。...当定义外键后,要求外键列数据必须在主表主键列存在或为null 关键词:foreign key (字段名) references 主表(列) 案例: 我们可以看到,学生信息是和班级表有关系:某个班还有学生时候我们不能直接删除这个班数据

21640

MySQL表约束

一.表约束概念 真正约束字段是数据类型,但是数据类型约束很单一,需要有一些额外约束,更好保证数据合法性,从业务逻辑角度保证数据正确性。...删除主键约束 这样,插入数据就可以重复,但是通过观察,仍不能为空,因为not null在创建表时添加约束期间会一并添加到约束。不过有了主键,才能更好查找数据,因为其具有唯一性。...因此,这就需要让两个表产生联动,插入class_id=3学生前提是存在id=3班级,删除id=1班级最后会连着学生表中所属class_id=1学生信息一并删除,这就涉及到了外键约束。...所以,我们需要重新建立一个从表student,目的是引入外键逻辑关系。 目前学生表是空,先插入数据: 若删除id=1班级,也不会成功,因为student中还存在class_id=1学生。...只有在student中不存在id=1学生,才能删除。 这就叫做外键约束。外键本质就是产生关联,增加约束,保证表和表之间完整性。

18450

如何解决逻辑删除与数据库唯一约束冲突

前言 不知道大家有没有遇到这么一种业务场景,在业务中有个唯一约束A,当该业务进行逻辑删除后(设置标记为删除状态),再往唯一约束列插入相同值时,此时会报Duplicate entry,但在业务上,该值时必须要插入...今天我们就来聊聊处理这种业务场景几种思路 解决思路 方案一:不采用逻辑删除,直接物理删除 方案二:新建历史表 主表进行物理删除,同时将删除记录保存到历史表中 方案三:取消表唯一约束,同时引入redis...来保证唯一约束 取消表唯一约束,在项目中引入redis,通过redis来判重,新增时往redis set记录,删除时,删除redis记录 方案四:变更删除标记为时间戳 将删除状态不以0,1表示,而是以时间戳为值...,然后将删除状态为与之前唯一约束A重新组成唯一联合约束index(A、del_flag),删除时变更del_flag时间戳 方案五:保留删除标记,同时新建一个字段del_unique_key 保留删除状态位...,再新增一个字段del_unique_key,该字段默认值为0,字段类型和大小与主键id保持一致,同时与原先唯一约束重新组成联合唯一约束index(A,del_unique_key),业务进行逻辑删除

3.9K11

如何解决逻辑删除与数据库唯一约束冲突

01前言 不知道大家有没有遇到这么一种业务场景,在业务中有个唯一约束A,当该业务进行逻辑删除后(设置标记为删除状态),再往唯一约束列插入相同值时,此时会报Duplicate entry,但在业务上,该值时必须要插入...今天我们就来聊聊处理这种业务场景几种思路 02解决思路 方案一:不采用逻辑删除,直接物理删除 方案二:新建历史表 主表进行物理删除,同时将删除记录保存到历史表中 方案三:取消表唯一约束,同时引入redis...来保证唯一约束 取消表唯一约束,在项目中引入redis,通过redis来判重,新增时往redis set记录,删除时,删除redis记录 方案四:变更删除标记为时间戳 将删除状态不以0,1表示,而是以时间戳为值...,然后将删除状态为与之前唯一约束A重新组成唯一联合约束index(A、del_flag),删除时变更del_flag时间戳 方案五:保留删除标记,同时新建一个字段del_unique_key 保留删除状态位...,再新增一个字段del_unique_key,该字段默认值为0,字段类型和大小与主键id保持一致,同时与原先唯一约束重新组成联合唯一约束index(A,del_unique_key),业务进行逻辑删除

54920
领券