【解析MySQL创建外键关联错误-errno:150】教程文章相关的互联网学习教程文章

【原创】关于自身表的外键触发器实现

目前遇到这样一个外键定义:`t_girl`.`tb1`CONSTRAINT`fk_1`FOREIGNKEY(`r_id`)REFERENCES`tb1`(`id`)ONDELETECASCADE目的是对于自己的另外一个字段进行约束,其 目前遇到这样一个外键定义: `t_girl`.`tb1`CONSTRAINT `fk_1` FOREIGN KEY (`r_id`) REFERENCES `tb1` (`id`) ON DELETE CASCADE目的是对于自己的另外一个字段进行约束,香港服务器, 其实这样看来, 后面的级联删除就没有必要了,因为针对的是同一张表的同一条记录。...

Oracle数据完整性约束:主键、外键、各种约束的创建删除语句

ORACLE对数据库完整性的约束: 三种方法维护数据完整性:ORACLE完整性约束,数据库触发器,应用程序代码。应尽量使用ORACLE完整性 Oracle对数据库完整性的约束: 三种方法维护数据完整性:ORACLE完整性约束,数据库触发器,应用程序代码。 应尽量使用ORACLE完整性约束,可靠性和效率高,容易修改,使用灵活,记录在数据字典。 ORACLE五种约束: 非空 not null,定义 的列不能为空。只能在列级定义 唯一,unique,表中每一行所定义 ...

Oracle获取外键【图】

Oracle获取外键将会使用到一张系统表:user_constraints。所有有时间在Oracle需要手动处理数据,在删除一张主表时,要先把引用主 Oracle获取外键将会使用到一张系统表:user_constraints。 如获取全部外键: select CONSTRAINT_NAME 约束名称,TABLE_NAME 表 from user_constraints t where 1=1 --t.table_name in(TBL_STEP) and CONSTRAINT_TYPE =R AND CONSTRAINT_NAME=FK_STEP_ID; 所有有时间在Oracle需要手动处理数据,在删...

Oracle索引监控与外键索引【图】

Oracle 监控索引特性为我们提供了一个大致判断索引是否被使用的情形。之所以这么说,是因为在Oracle 10g 中收集统计信息时会导致 Oracle 监控索引特性为我们提供了一个大致判断索引是否被使用的情形。之所以这么说,是因为在Oracle 10g 中收集统计信息时会导致索引被监控,此并非sql语句而产生。而在11g则不会出现类型的情形。其次对于存在子表存在外键的情形,对于主表进行操作时是否会导致索引被监控呢?下面描述的是这个话题。 ...

MySQL外键应用【图】

MySQL外键应用,所有tables必须是InnoDB型,它们不能是临时表.因为在MySQL中只有InnoDB类型的表才支持外键. MySQL版本:5.5.28 系统平台:RHEL 5.8 32位 (1) 外键的使用: 外键的作用,主要有两个: 一个是让数据库自己通过外键来保证数据的完整性和一致性一个就是能够增加ER图的可读性 有些人认为外键的建立会给开发时操作数据库带来很大的麻烦.因为数据库有时候会由于没有通过外键的检测而使得开发人员删除,插入操作失败.他们觉得这...

SQL删除数据库中所有用户数据表外键【图】

--SQL删除数据库中所有用户数据表外键 --查询删除前的当前数据库所有约束select * from information_schema.key_column_usage de首页 → 数据库技术背景:阅读新闻SQL删除数据库中所有用户数据表外键 [日期:2012-11-24] 来源:Linux社区 作者:xqf222 [字体:]--SQL删除数据库中所有用户数据表外键 --查询删除前的当前数据库所有约束select * from information_schema.key_column_usage declare @TableName nvarchar(250)--声明读...

MySQL添加外键失败ERROR1452【图】

今天在学习数据库添加外键的时候,遇到了问题,我先创建了两个表 orders 和 order_items ,存储引擎都是InnoDB,且都有orderid 今天在学习数据库添加外键的时候,遇到了问题 我先创建了两个表 orders 和 order_items ,,存储引擎都是InnoDB,且都有orderid这个属性(类型完全一样),但是我使用命令 order_items orders (orderid); 添加外键的时候 出现了错误fails 最后才发现,原来是我的order_items表中已经存在了数据,...

MySQL外键创建失败的解决【图】

创建persons:CREATE TABLE `persons` ( `id_p` int(11) NOT NULL AUTO_INCREMENT, `lastname` varchar(10) DEFAULT NULL, `fi 创建persons:CREATE TABLE `persons` ( `id_p` int(11) NOT NULL AUTO_INCREMENT, `lastname` varchar(10) DEFAULT NULL, `firstname` varchar(10) DEFAULT NULL, `address` varchar(50) DEFAULT NULL, `city` varchar(10) DEFAULT NULL, PRIMARY KEY (`id_p`)); 再创建表orders:CREATE TABLE `ord...

MySQL修改外键删除时操作出现error121解决办法【图】

环境:MySQL Server 5.1 + Navicat for Mysql 8.2 问题:修改外键删除时操作出现121错误 解决: 把外键名改为其他名字。 错误信 环境:MySQL Server 5.1 + Navicat for Mysql 8.2 问题:修改外键删除时操作出现121错误解决: 把外键名改为其他名字。 错误信息参考: error 121这是外关键字名字重复的错误,即使是在不同的表中,外关键字的名字也不能重复。error 150这类错误包括3种情况:1. 外键和被引用外键类型不一样,比如integ...

phpMyAdmin中设置外键【图】

今天使用到了MySQL数据库,最初使用的可视化管理工具是官方推荐的MySQL GUI Tools。用来一会发现不是很好用,就换phpMyAdmin了, 今天使用到了MySQL数据库,最初使用的可视化管理工具是官方推荐的MySQL GUI Tools。用来一会发现不是很好用,就换phpMyAdmin了,确实要比之前的方便一点,但是在设置外键的时候又不是很方便,如是乎还是决定进入命令行模式,,设置外键的语句如下: 这个时候再打开phpMyAdmin可以看到,外键关系已经设...

在MySQL中利用外键实现级联删除【图】

首先,目前在产品环境可用的MySQL版本(指4.0.x和4.1.x)中,只有InnoDB引擎才允许使用外键,所以,我们的数据表必须使用InnoDB引 首先,目前在产品环境可用的MySQL版本(指4.0.x和4.1.x)中,只有InnoDB引擎才允许使用外键,所以,我们的数据表必须使用InnoDB引擎。 下面,我们先创建以下测试用数据库表: CREATE TABLE `roottb` ( `id` INT(11) UNSIGNED AUTO_INCREMENT NOT NULL, `data` VARCHAR(100) NOT NULL DEFAULT , ...

MySQL外键关联问题【图】

继续再看老师给推荐的深入浅出mysql数据库开发这本书,看到innodb数据库的外键关联问题时,遇到了一个问题,书上写的是可以对父表 继续再看老师给推荐的深入浅出mysql数据库开发这本书(下载见 ),看到innodb数据库的外键关联问题时,遇到了一个问题,书上写的是可以对父表进行修改,从而同步到子表的外键上去,可是自己的实验却是没有能够。ERROR 1451 (23000): Cannot delete or update a parent row: a foreign key constrain...

Oracle外键级联更新延迟约束和触发器实现【图】

Oracle外键只有级联删除没有级联更新,但是有时候系统中可能需要这样的功能,所以这里记录下实现过程。 Oracle外键只有级联删除没有级联更新,但是有时候系统中可能需要这样的功能,所以这里记录下实现过程。 Oracle中的约束有两种方式,一种是延迟约束,,一种是非延迟约束。所谓的非延迟约束就是说更改记录的时候会立刻进行约束条件的查看,是否因为违反了某些约束条件而不能执行修改,而延迟约束则表示不会再刚进行修改的时候进...

SQL与Oracle的外键约束之级联删除篇【图】

最近软件系统中要删除一条记录,就要关联到同时删除好多张表,他们之间还存在着约束关系.所以考虑到在创建表时加上约束关系,具体如 最近软件系统中要删除一条记录,就要关联到同时删除好多张表,他们之间还存在着约束关系.所以考虑到在创建表时加上约束关系,具体如下: SQL的外键约束可以实现级联删除与级联更新; Oracle则只充许级联删除。 SQL级联删除与级联更新使用格式:CREATE TABLE A001(ID INT PRIMARY KEY,NAME VARCHAR(20))...

OraclePL/SQL之FlashbackTable与外键约束【图】

Oracle PL/SQL之Flashback Table与外键约束 我们知道 Flashback Table可以把drop掉的表从回收站里恢复回来,但是并不是关于该表的所有东西都能被Flashback回来,,比如外键约束。除此之外,带有细粒度审计(Fine-Grained Auditing )和虚拟专用数据库策略(Virtual Private Database policies)的表也不可恢复的哦,请看Oracle官方的Flashback说明:A table and all of its dependent objects (indexes, LOB segments, nested tabl...

错误 - 相关标签