首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【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

    1.3K10

    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)自增长的字段必须是...如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    3.4K30

    Mysql数据库--删除和备份、约束类型

    1.删除操作 1.1表的删除操作 delete from 表名 where 条件(可以搭配order by,delete) 会把符合条件的行从这个表里面删除掉 drop tabel-...--删除表操作; drop操作就是直接把这个表删除了,这个表根本就不会存在于这个数据库里面了,但是我们的delete是把表里面的记录删除掉,但是这个表还是存在的; delete table(名字)...,如果使用,尽量不要出现相同名字的现象; 上面的这个现实的效果是我们的这个default这一列的默认的结果都是null,其实这一列的内容我们是可以进行修改的,例如我们把这个名字的默认值修改为‘未命名’,...这个时候如果我们插入了106班,这个classid在我们的这个class这个表里面显然是不存在的,因此这个时候就会报错;如果我们把这个class这个表里面的内容删除掉,这个时候,可能也会影响我们的这个外键约束...,这个删除之后我们的儿子表里面就没有参考了; 正确做法是:我们可以先去删除这个儿子表,再去删除这个父亲表,这样才会被允许操作; 下面的这个是一个电商网站的情景,这个里面就有用到我们的这个外键约束,因为我们下单的这个商品的

    81810

    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

    1.7K20

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

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

    3.4K20

    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.7K50

    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,但是不能是不存在的外键值。 ?

    16.7K21

    mysql的约束

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

    2.5K10

    表的约束(MySQL)

    表的约束 真正约束字段的是数据类型,但是数据类型约束很单一,需要有一些额外的约束,更好的保证数据的合法性,从业务逻辑角度保证数据的正确性。比如有一个字段是email,要求是唯一的。...,可以再次追加主键 alter table 表名 add primary key(字段列表) 删除主键 alter table 表名 drop primary key; mysql> alter table...而我们设计员工工号的时候,需要一种约束:而所有的员工工号都不能重复。 具体指的是在公司的业务上不能重复,我们设计表的时候,需要这个约束,那么就可以将员工工号设计成为唯 一键。...:外键约束主要定义在从表上,主表则必须是有主键约束或unique 约束。...因为此时两张表在业务上是有相关性的,但是在业务上没有建立约束关系,那么就可能出现问题。 解决方案就是通过外键完成的。

    20010

    XML的约束——DTD

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

    74230

    MySQL表的约束

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

    70250

    【MySQL】表的约束

    一张表最多只能有一个自增长 获取上次插入的 AUTO_INCREMENT 的值:select last_insert_id(); 主键(primary key) primary key用来唯一的约束该字段里面的数据...primary key; # 主键唯一不用指明具体column; 当主键加上auto_increment约束后,如果欲删除主键,仅仅alter table tb2 drop primary key;不行...但是一张表中只能有一个主键:唯一键就可以解决表中有多个字段需要唯一性约束的问题。...外键(foreign key (字段名) references 主表(列)) 外键用于定义主表和从表之间的关系: 外键约束主要定义在从表上,主表则必须是有主键约束或unique约束。...举例:班级表id只有10,20;向从表插入时的class_id的值只能为10 / 20 / null; 数据一致性:当对主表中的主键数据进行修改(如更新或删除)时 ,通过设置外键约束的 ON DELETE

    9410

    【MySql】表的约束

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

    80930

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

    前言 不知道大家有没有遇到这么一种业务场景,在业务中有个唯一约束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),业务进行逻辑删除

    4.6K11
    领券