Bug #73757 | Request: make error 150 specify constraint name | ||
---|---|---|---|
Submitted: | 28 Aug 2014 14:06 | ||
Reporter: | Federico Razzoli | Email Updates: | |
Status: | Open | Impact on me: | |
Category: | MySQL Server: InnoDB storage engine | Severity: | S4 (Feature request) |
Version: | any | OS: | Any |
Assigned to: | CPU Architecture: | Any | |
Tags: | foreign-keys |
[28 Aug 2014 14:06]
Federico Razzoli
[29 Aug 2014 20:04]
Roberto Spadim
test case: create table t11 (f1 integer primary key) engine innodb; alter table t11 add constraint c1 foreign key (f1) references t1(f1); /* Erro SQL (1005): Can't create table `teste`.`#sql-3f90_25c30` (errno: 150 "Foreign key constraint is incorrectly formed") */
[29 Aug 2014 20:09]
MySQL Verification Team
Current 5.7 version behaves like this: mysql> create table t1(a int)engine=innodb; Query OK, 0 rows affected (0.06 sec) mysql> create table t2(a int, constraint a foreign key a (a) references t1(a))engine=innodb; ERROR 1215 (HY000): Cannot add foreign key constraint mysql> show warnings\G *************************** 1. row *************************** Level: Warning Code: 150 Message: Create table 'test/t2' with foreign key constraint failed. There is no index in the referenced table where the referenced columns appear as the first columns. *************************** 2. row *************************** Level: Error Code: 1215 Message: Cannot add foreign key constraint 2 rows in set (0.00 sec)
[29 Aug 2014 20:10]
MySQL Verification Team
mysql> create table t11 (f1 integer primary key) engine innodb; Query OK, 0 rows affected (0.10 sec) mysql> alter table t11 add constraint c1 foreign key (f1) references t1(f1); ERROR 1215 (HY000): Cannot add foreign key constraint mysql> show warnings; +-------+------+-----------------------------------+ | Level | Code | Message | +-------+------+-----------------------------------+ | Error | 1215 | Cannot add foreign key constraint | +-------+------+-----------------------------------+ 1 row in set (0.00 sec) So, nothing useful there. --------- show engine innodb status is a bit more verbose: ------------------------ LATEST FOREIGN KEY ERROR ------------------------ 2014-08-29 22:08:17 0x288c Error in foreign key constraint of table test/#sql-2654_2: foreign key (f1) references t1(f1): Cannot resolve table name close to: (f1)
[29 Aug 2014 20:29]
Roberto Spadim
should be nice documment warnings at http://dev.mysql.com/doc/refman/5.7/en/create-table-foreign-keys.html