-
2021-12-28 17:26:16
-- 该表的id 是别的表的外键,不能硬生生的修改值。先把外键约束设置失效,中间做更新操作,操作好又把外键约束还原
SET FOREIGN_KEY_CHECKS = 0; update tableName set id=100333 where id=100339; SET FOREIGN_KEY_CHECKS = 1;
更多相关内容 -
MySQL修改外键约束关系
2022-03-21 11:32:031.关闭外键约束检查:set foreign_key_checks=0; 2.删除外键约束:alter table 表名 drop foreign key 外键名; (主键字段和外键字段都会自动创建索引,因此我们还要将这个外键的索引删除) 3.删除索引:...1.关闭外键约束检查:set foreign_key_checks=0;
2.删除外键约束:alter table 表名 drop foreign key 外键名;
(主键字段和外键字段都会自动创建索引,因此我们还要将这个外键的索引删除)
3.删除索引:alter table 表名 drop index 索引名; 或 drop index 索引名 on 表名;
(备注:或许是笔者输入法的原因,笔者键入的单引号会报错,需要复制SQL语句中的单引号)
4.增加外键约束:alter table 表名 add foreign key(字段名) references 外键所在的表(id);
5.开启外键约束检查:set foreign_key_checks=1;
-
ORACLE 外键约束修改行为
2021-05-01 04:30:04而且在主表的记录发生变化导致外键参考唯一约束值发生了变化时,定义了一系列的动作。在SQL92标准中定义了几种外键改变后,如何处理子表记录的动作,其中包括:限制Restrict:这种方式不允许对被参考的记录的键值...Oracle的外键用来限制子表中参考的字段的值,必须在主表中存在。而且在主表的记录发生变化导致外键参考唯一约束值发生了变化时,定义了一系列的动作。
在SQL92标准中定义了几种外键改变后,如何处理子表记录的动作,其中包括:
限制Restrict:这种方式不允许对被参考的记录的键值执行更新或删除的操作;
置为空Set to null:当参考的数据被更新或者删除,那么所有参考它的外键值被置为空;
置为默认值Set to default:当参考的数据被更新或者删除,那么所有参考它的外键值被置为一个默认值;
级联Cascade:当参考的数据被更新,则参考它的值同样被更新,当参考的数据被删除,则参考它的子表记录也被删除;
不做操作No action:这种方式不允许更新或删除被参考的数据。和限制方式的区别在于,这种方式的检查发生在语句执行之后。Oracle默认的方式就是这种方式。
Oracle明确支持的方式包括No action、Set to null和Cascade.对于Set to Default和Restrict,Oracle的约束类型并不直接支持,不过可以通过触发器来实现。
简单看一下Oracle的默认处理方式No action:
SQL> CREATE TABLE T_P (ID NUMBER, NAME VARCHAR2(30));
表已创建。
SQL> ALTER TABLE T_P ADD PRIMARY KEY (ID);
表已更改。
SQL> CREATE TABLE T_C (ID NUMBER, FID NUMBER, NAME VARCHAR2(30));
表已创建。
SQL> ALTER TABLE T_C ADD CONSTRAINT FK_T_C
2 FOREIGN KEY (FID)
3 REFERENCES T_P (ID);
表已更改。
SQL> INSERT INTO T_P VALUES (1, ’A’);
已创建 1 行。
SQL> INSERT INTO T_P VALUES (2, ’B’);
已创建 1 行。
SQL> INSERT INTO T_C VALUES (1, 1, ’A’);
已创建 1 行。
SQL> COMMIT;
提交完成。
对于No Action操作而言,如果主键的记录被外键所参考,那么主键记录是无法更新或删除的。
SQL> DELETE T_P WHERE ID = 1;
DELETE T_P WHERE ID = 1
*第 1 行出现错误:
ORA-02292: 违反完整约束条件 (YANGTK.FK_T_C) - 已找到子记录日志
SQL> UPDATE T_P SET ID = 3 WHERE ID = 1;
UPDATE T_P SET ID = 3 WHERE ID = 1
*第 1 行出现错误:
ORA-02292: 违反完整约束条件 (YANGTK.FK_T_C) - 已找到子记录日志
SQL> DELETE T_P WHERE ID
-
sqlserver用sql语句来进行外键约束的修改
2022-05-11 13:55:48ADD CONSTRAINT 约束名 FOREIGN KEY(外键列名1,外键列名2) REFERENCES 表名2(列名1,列名2) ON UPDATE CASCADE ON DELETE CASCADE --其中ON UPDATE CASCADE代表着级联更新,ON DELETE CASCADE代表着级联删除,可根据...--先删掉约束
ALTER TABLE 表名1
DROP CONSTRAINT 约束名--再重新添加约束
ALTER TABLE 表名1
ADD CONSTRAINT 约束名 FOREIGN KEY(外键列名1,外键列名2) REFERENCES 表名2(列名1,列名2) ON UPDATE CASCADE ON DELETE CASCADE--其中ON UPDATE CASCADE代表着级联更新,ON DELETE CASCADE代表着级联删除,可根据需求选择带上或者不带
-
未能启用约束。一行或多行中包含违反非空、唯一或外键约束的值。
2021-03-03 21:08:04来源:...一行或多行中包含违反非空、唯一或外键约束的值。”的异常信息。在网上找了查了一些原因:http://www.cnblogs.com/muzihai1988/archive/2011/05/04/2036502.html原因分析:强类型... -
【MySQL】外键约束
2021-12-17 10:08:11外键约束可以使两张表紧密结合起来,特别是对于删除/修改级联操作时,会保证数据的完整性。 子表/从表:使用外键约束的表 (学生表:学号,姓名,性别,年龄,班级号) 父表/主表:含有被依赖的字段的表(班级表... -
mysql如何修改外键约束字段
2022-02-17 10:44:40mysql如何修改外键约束字段 -
MySQL修改被外键约束的数据表列值 - 米扑博客
2021-01-27 19:57:13MySQL 数据表的约束约束保证...约束类型包括:NOT NULL (非空约束)PRIMARY KEY (主键约束)UNIQUE KEY (唯一约束)DEFAULT (默认约束)FOREIGN KEY (外键约束)外键约束保证数据一致性,完整性,实现一对多或者一对一... -
SQL外键约束
2020-07-25 14:47:23SQL外键约束外键约束添加外键约束删除外键约束 外键约束 一个表中的 FOREIGN KEY(外键) 指向另一个表中的 PRIMARY KEY(主键) FOREIGN KEY 约束用于预防破坏表之间连接的动作 FOREIGN KEY 约束也能防止非法数据... -
VS报“未能启用约束。一行或多行中包含违反非空、唯一或外键约束的值。”...
2019-08-10 03:22:04一行或多行中包含违反非空、唯一或外键约束的值。”的异常信息。原因分析:强类型的DataTable和SQL语句查询出的结果不匹配。 简单说就是强类型的DataTable比SQL语句查询出来的结果集要多一些数据列或这属性不对应。... -
外键约束(foreign key) [MySQL][数据库]
2022-03-20 00:59:47外键约束(FOREIGN KEY(字段) REFERENCES 主表名(字段)) 外键约束的作用: 限定某个字段的引用完整性 我们之前在讲数据完整性的时候就提到过引用完整性 引用完整性(eg: 员工所在的部门,在部门表中一定要能找到这个... -
小议Oracle外键约束修改行为(二)
2021-05-01 07:37:21而且在主表的记录发生变化导致外键参考唯一约束值发生了变化时,定义了一系列的动作。这篇简单描述一下SET TO NULL操作。上一篇描述了Oracle外键处理默认操作:No Action,这里简单介绍一下SET TO NULL操作。还是... -
3.外键约束
2022-04-05 18:10:09外键约束&外键策略 -
外键约束的作用以及如何创建外键约束
2020-08-07 09:59:47外键约束 外键必须是另一个表的主键。 外键的作用: 1.实体完整性,确保每个实体是唯一的(通过主键来实施) 2.域完整性,确保属性值只从一套可选的集合里选择 3.关联完整性,确保每个外键或null或含有与相关主键值... -
「外键约束」外键约束 - seo实验室
2021-02-08 05:46:14外键约束如果公共关键字在一个关系中是主关键字,那么这个公共关键字被称为另一个关系的外键外键(FOREIGN KEY)假设有有A、B两张数据表,A表有一个字段id用来唯一标识A中的一条记录,B表有一个字段a_id来关联A表的一... -
数据库——添加外键约束
2021-09-29 10:48:10添加外键约束名字一定不能重复 -
外键约束
2020-12-21 05:52:20要更改存储引擎,必须首先删除任何外键约束 外键和引用键中的对应列必须具有相似的数据类型。固定精度类型的大小和符号必须相同。字符串类型的长度不必相同。对于非二进制(字符)字符串列,字符集和排序规则必须... -
MySQL数据表操作及外键约束
2021-06-22 13:39:27MySQL数据表操作及外键约束 MySQL常用数据类型 查看数据库结构 查看当前... #修改test05外键约束名为FK_hobid外键约束字段 插入记录先从主表插入,然后才能在从表插入记录 删除要先删除从表记录,才能删除主表记录 -
约束5:外键约束
2021-05-18 06:41:25在关系型数据库中,表与表之间存在引用关系,也就是说,数据列C1引用其他表的数据列C2中存在的值,引用关系通过外键(Foreign Key )约束实现。如果表(TableA)中的列C1被其他表引用,那么,我们把表(TableA)称作参考表... -
如何在MySQL中设置外键约束
2021-01-18 21:31:24(1) 外键的使用:外键的作用,主要有两个:一个是让数据库自己通过外键来保证数据的完整性和一致性一个就是能够增加ER图的可读性有些人认为外键的建立会给开发时操作数据库带来很大的麻烦.因为数据库有时候会由于没有... -
关于未能启用约束。一行或多行中包含违反非空、唯一或外键约束的值!
2018-06-04 15:30:00一行或多行中包含违反非空、唯一或外键约束的值“ 刚开始一味的调试前台,在后台cpp里添加日志查看 ,想要的数值得到了,但是再添加时 (出现报错“关于未能启用约束。一行或多行中包含违反非空、唯一或外键约束的... -
MySQL外键约束(FOREIGN KEY)案例讲解
2022-04-28 23:46:13MySQL 外键约束(FOREIGN KEY)是表的一个特殊字段,经常与主键约束一起使用。对于两个具有关联关系的表而言,相关联字段中主键所在的表就是主表(父表),外键所在的表就是从表(子表)。 外键用来建立主表与从表的... -
Oracle 如何设置外键约束
2021-09-26 20:08:58下面介绍如何设置外键约束 1.创建表时就设置外键约束。 为了插入数据不规范报错能够更快的找到错误的地方,外键一般都会设置一个别名来表示外键约束。外键所引用的另一个表的属性要是主键。 我们可以直接在... -
外键约束与级联操作小结
2022-02-18 11:02:33阐述了外键约束概念、创建规则、语法、举实例说明并阐述了为什么不推荐使用外键和级联问题 -
mysql中如何设置外键约束?
2021-02-01 14:23:15mysql中设置外键约束的方法:可以通过FOREIGN KEY关键字来指定外键,语法“ALTER TABLE 表名 ADD CONSTRAINT 外键名 FOREIGN KEY(列名) REFERENCES 主表名 (列名);”。(1) 外键的使用:外键的作用,主要有两个:一个是... -
MySQL外键约束
2021-04-28 19:29:05外键约束可以是两张表紧密的结合起来,特别是针对修改或者删除的级联操作时, 会保证数据的完整性。 (注:级联(cascade)在计算机科学里指多个对象之间的映射关系,建立数据之间的级联关系提高管理效率) 外键... -
MySQL中的主键约束和外键约束
2021-01-18 18:28:251、主键约束表通常具有包含唯一标识表中每一行的值的一列或一组列。这样的一列或多列称为表的主键 (PK),用于强制表的实体完整性。由于主键约束可保证数据的唯一性,因此经常对标识列定义这种约束。如果为表指定了...