MySQL errno: 150 Foreign Key Constraint

解析MySQL创建外键关联错误 - errno:150 本篇文章是对MySQL创建外键关联错误-errno:150进行了详细的分析介绍,需要的朋友参考下 立即下载
From MySQL Manual we can see it happens a foreign key constraint was not correctly formed.
(http://dev.mysql.com/doc/refman/5.0/en/innodb-error-codes.html)
It reports something like ' ERROR 1005: Can't create table './.../#.....frm' (errno: 150)'

Now let's see the right syntax:
(http://dev.mysql.com/doc/refman/5.0/en/innodb-foreign-key-constraints.html)
[CONSTRAINT [symbol]] FOREIGN KEY
[index_name] (index_col_name, ...)
REFERENCES tbl_name (index_col_name,...)
[ON DELETE reference_option]
[ON UPDATE reference_option]

reference_option:
RESTRICT | CASCADE | SET NULL | NO ACTION

To fix this, please do such checks:

1. InnoDB supports foreign key constraints.
This means you should created table as InnoDB if you are planning to add foreign key constraint on it.
2. Both source column and destination column should be indexed.
   InnoDB requires indexes on foreign keys and referenced keys so that foreign key checks can be fast and not require a table scan.
 

MySql 数据库报(errno: 150)解决方法 错误原因有四: 外键的引用类型不一样,主键是int外键是char 找不到主表中 引用的列 主键和外键的字符编码不一致 还有要建立外键的话,要先建立索引。没有建立索引也会出错。 阅读详情

相关推荐

MySQL错误:Can't create table‘..’ (errno:150)解决方案

场景 含有学生表s(sno,sname,sage)、课程表c(cno,cname) 选课表(sc)创建时,设置(sno,cno)为主键、sno和cno为外键 drop table if exists sc1; create table sc1( sno varchar(10), cno varchar(10), grade numeric, primary k...

浅然的专栏 5万+

mysql报错error:150

问题描述: 提示:mysql创建表示error:(150) 例如: Can’t create table ‘db_school.test’ (errno: 150) create table test ( studentNo CHAR(10), studentNAME varchar(20) not null , sex char(2) not null , birthday DATE, native varchar(20), nation varchar(10) default 'china', clas

weixin_45783299的博客 1228

150mysql_erron 150 mysql

当你试图在mysql中创建一个外键的时候,这个出错会经常发生,这是非常令人沮丧的。像这种不能创建一个.frm 文件的报错好像暗示着操作系统的文件的权限错误或者其它原因,但实际上,这些都不是的,事实上,这个mysql报错已经被报告是一个mysql本身的bug并出现在mysql 开发者列表当中很多年了,然而这似乎又是一种误导。在很多实例中,这种错误的发生都是因为mysql一直以来都不能很好的支持的关系...

weixin_29790285的博客 398

mysql数据库150错误_sql - MySQL:无法创建表(错误号:150

sql - MySQL:无法创建表(错误号:150)我试图导入.sql文件,并在创建表时失败。这是失败的查询:CREATE TABLE `data` (`id` int(10) unsigned NOT NULL,`name` varchar(100) NOT NULL,`value` varchar(15) NOT NULL,UNIQUE KEY `id` (`id`,`name`),CON...

weixin_42320061的博客 3798

MySQL:Can‘t create table `book_system`.`borrewRecord` (errno: 150Foreign key constraint is incorre

创建两个表,其中加了外键约束,一直报错: Can’t create table book_system.borrewRecord (errno: 150Foreign key constraint is incorrectly formed”) 思路一:参照外键的两个字段的类型是否一致。 思路二:字符集编码的问题,两个表的字符集默认编码是否一样 建数据库一定要设置utf8,这样后面就不会出现这个问题。。。。。。 顺便复习一下外键的语句 在创建表时就添加:constraint 外键名 foreign

zJay-L's Blog 636

MySQL加外键报错Foreign key constraint is incorrectly formed

在服务器上给MySQL中的表加外键,报错   SQL Error (1005): Can't create table 'xxxxx' (errno: 150) Foreign key constraint is incorrectly formed   检查了SQL,没错,然后发现其中一个表的引擎是MyISAM,将其改为InnoDB后,运行通过  ...

wangcheng 2953

MySQL外键foreign key

建立外键的前提: 本表的列必须与外键类型相同(外键必须是外表主键)。 外键作用: 使两张表形成关联,外键只能引用外表中的列的值! 指定主键关键字: foreign key(列名) 引用外键关键字: references <外键表名>(外键列名) 事件触发限制: on delete和on update , 可设参数cascade(跟随外键改动), restrict(限制...

an4455的博客 159

MySQL创建外键关联错误 - errno:150

当 你试图在mysql中创建一个外键的时候,这个出错会经常发生,这是非常令人沮丧的。像这种不能创建一个.frm 文件的报错好像暗示着操作系统的文件的权限错误或者其它原因,但实际上,这些都不是的,事实上,这个mysql报错已经被报告是一个mysql本身的 bug并出现在mysql 开发者列表当中很多年了,然而这似乎又是一种误导。 在很多实例中,这种错误的发生都是因为mysql一直以来都不能很...

weixin_30614109的博客 100

errno: 150Foreign key constraint is incorrectly formed”

数据库外键约束创建失败(错误代码1005),原因是主键和外键类型不一致。示例中grade表的grade_id为unsigned int,而students表的class_id为普通int类型。解决方法是将两者类型统一。常见的外键约束问题还包括:引用列类型不匹配(如int对char)、引用列不存在、字符编码或存储引擎不一致等。检查这些因素可解决大多数外键创建问题。

城南蝈蝈 7129

MySQL ERROR 1005: Can't create table (errno: 150)解决办法

mysql 中建立引用约束的时候会出现MySQL ERROR 1005: Can't create table (errno: 150)的错误信息结果是不能建立 引用约束。 出现问题的大致情况 1、外键的引用类型不一样,如主键是int外键是char 2、找不到主表中引用的列 3、主键和外键的字符编码不一致,也可能存储引擎不一样 我遇到的问题是上面的三种情

9万+

mysql错误代码1005_MySQL“错误1005(HY000):无法创建表'foo。#sql-12c_4'(errno150)”...

我当时正在数据库中创建一些表foo,但是每次我以errno 150结束有关外键的工作时。首先,这是我创建表的代码:CREATE TABLE Clients(client_id CHAR(10) NOT NULL ,client_name CHAR(50) NOT NULL ,provisional_license_num CHAR(50...

weixin_39654848的博客 246

mysql中创建的表找不到_Mysql 无法创建表errno 150

我必须在mysql中创建一个带有2个表的数据库,但该脚本失败,并出现errno 150(外键问题)。我双重检查外键字段在两个表上是相同的,我找不到任何错误。这里是脚本:SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KE...

weixin_39690625的博客 294

mysql 外键 errno 150,MySQL使用提供errno150的外键创建表

I am trying to create a table in MySQL with two foreign keys, which reference the primary keys in 2 other tables, but I am getting an errno: 150 error and it will not create the table.Here is the SQL ...

weixin_34157892的博客 113

mysql constraint报错_mysql-errno 150:外键约束格式错误

我已经读过很多关于此错误的问题,或者我不了解正在发生的事情/答案,或者不适合我的情况.我已经有一个简单的用户表:CREATE TABLE user(id INT PRIMARY KEY NOT NULL AUTO_INCREMENT,username VARCHAR(50) NOT NULL,password VARCHAR(64) NOT NULL);CREATE UNIQUE INDEX us...

weixin_33736210的博客 689

errno: 150

1.版本 1)操作系统  cat /etc/issue cat /etc/issue CentOS release 6.6 (Final) Kernel \r on an \m  cat /proc/version cat /proc/version Linux version 2.6.32-504.el6.x86_64 (mockbuild@c6b9.bsys.d

渔夫数据库笔记 4180

mysql不能创建表150_MySQL:无法创建表(errno150)

MySQL:无法创建表(errno150)我正在尝试导入一个.sql文件,它在创建表时失败了。以下是失败的查询:CREATE TABLE `data` (`id` int(10) unsigned NOT NULL,`name` varchar(100) NOT NULL,`value` varchar(15) NOT NULL,UNIQUE KEY `id` (`id`,`name`),CON...

weixin_28994767的博客 235

errno 150 mysql_MySQL:无法创建表(errno150)

MySQL:无法创建表(errno150)我正在尝试导入一个.sql文件,它在创建表时失败了。以下是失败的查询:CREATE TABLE `data` (`id` int(10) unsigned NOT NULL,`name` varchar(100) NOT NULL,`value` varchar(15) NOT NULL,UNIQUE KEY `id` (`id`,`name`),CON...

weixin_35677065的博客 345
上一篇: Hibernate Data Types VS JAVA Data Types VS SQL Data Types
下一篇: Trade Mark
chris830
博客等级 码龄21年 0粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值