# # Bug #19027905 ASSERT RET.SECOND DICT_CREATE_FOREIGN_CONSTRAINTS_LOW # DICT_CREATE_FOREIGN_CONSTR # create table t1 (f1 int primary key) engine=InnoDB; create table t2 (f1 int primary key, constraint c1 foreign key (f1) references t1(f1), constraint c1 foreign key (f1) references t1(f1)) engine=InnoDB; ERROR HY000: Duplicate foreign key constraint name 'c1' create table t2 (f1 int primary key, constraint c1 foreign key (f1) references t1(f1)) engine=innodb; alter table t2 add constraint c1 foreign key (f1) references t1(f1); ERROR HY000: Duplicate foreign key constraint name 'c1' set foreign_key_checks = 0; alter table t2 add constraint c1 foreign key (f1) references t1(f1); ERROR HY000: Duplicate foreign key constraint name 'c1' drop table t2, t1; # # Bug #20031243 CREATE TABLE FAILS TO CHECK IF FOREIGN KEY COLUMN # NULL/NOT NULL MISMATCH # set foreign_key_checks = 1; show variables like 'foreign_key_checks'; Variable_name Value foreign_key_checks ON CREATE TABLE t1 (a INT NOT NULL, b INT NOT NULL, INDEX idx(a)) ENGINE=InnoDB; CREATE TABLE t2 (a INT KEY, b INT, INDEX ind(b), FOREIGN KEY (b) REFERENCES t1(a) ON DELETE CASCADE ON UPDATE CASCADE) ENGINE=InnoDB; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( `a` int(11) NOT NULL, `b` int(11) NOT NULL, KEY `idx` (`a`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci show create table t2; Table Create Table t2 CREATE TABLE `t2` ( `a` int(11) NOT NULL, `b` int(11) DEFAULT NULL, PRIMARY KEY (`a`), KEY `ind` (`b`), CONSTRAINT `t2_ibfk_1` FOREIGN KEY (`b`) REFERENCES `t1` (`a`) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci INSERT INTO t1 VALUES (1, 80); INSERT INTO t1 VALUES (2, 81); INSERT INTO t1 VALUES (3, 82); INSERT INTO t1 VALUES (4, 83); INSERT INTO t1 VALUES (5, 84); INSERT INTO t2 VALUES (51, 1); INSERT INTO t2 VALUES (52, 2); INSERT INTO t2 VALUES (53, 3); INSERT INTO t2 VALUES (54, 4); INSERT INTO t2 VALUES (55, 5); SELECT a, b FROM t1 ORDER BY a; a b 1 80 2 81 3 82 4 83 5 84 SELECT a, b FROM t2 ORDER BY a; a b 51 1 52 2 53 3 54 4 55 5 INSERT INTO t2 VALUES (56, 6); ERROR 23000: Cannot add or update a child row: a foreign key constraint fails (`test`.`t2`, CONSTRAINT `t2_ibfk_1` FOREIGN KEY (`b`) REFERENCES `t1` (`a`) ON DELETE CASCADE ON UPDATE CASCADE) NewDD TODO: Runtime Bug#25722221 - RENAME COLUMN DID NOT UPDATE MYSQL.FOREIGN_KEY_COLUMN_USAGE FOR FK CONSTRAINT # Operations on child table TODO: Waiting for Bug#24666169 DROP TABLE t2, t1; # # Bug#20752436: INNODB: FAILING ASSERTION: 0 IN FILE HANDLER0ALTER.CC # LINE 6647 # # Verify that index types that cannot be used as foreign keys are # ignored when creating foreign keys. set @@foreign_key_checks=0; CREATE TABLE t1(a CHAR(100), b GEOMETRY NOT NULL SRID 0) ENGINE InnoDB; # Creating a foreign key on a GEOMETRY column is not supported ALTER TABLE t1 ADD CONSTRAINT fi_b FOREIGN KEY(b) REFERENCES ti2(b); ERROR HY000: Failed to add the foreign key constraint. Missing index for constraint 'fi_b' in the foreign table 't1' # Adds FULLTEXT and SPATAL indices which cannot be used as foreign keys ALTER TABLE t1 ADD FULLTEXT INDEX(a), ADD SPATIAL INDEX(b); Warnings: Warning 124 InnoDB rebuilding table to add column FTS_DOC_ID # Adds a foreign key on column with FULLTEXT index. # The FULLTEXT index cannot be used and the generated key must be kept ALTER TABLE t1 ADD CONSTRAINT fi_a FOREIGN KEY(a) REFERENCES ti2(a); ANALYZE TABLE t1; Table Op Msg_type Msg_text test.t1 analyze status OK SHOW INDEXES FROM t1; Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Visible Expression t1 1 b 1 b A 0 32 NULL SPATIAL YES NULL t1 1 fi_a 1 a A 0 NULL NULL YES BTREE YES NULL t1 1 a 1 a NULL 0 NULL NULL YES FULLTEXT YES NULL # Attempt to add a foreign key on column with SPATIAL index. # The SPATIAL index cannot be used so this becomes an attempt at # creating a foreign key on a GEOMETRY column which is not supported ALTER TABLE t1 ADD CONSTRAINT fi_b FOREIGN KEY(b) REFERENCES ti2(b); ERROR HY000: Cannot drop index 'fi_a': needed in a foreign key constraint DROP TABLE t1; set @@foreign_key_checks= 1; # bug#25126722 FOREIGN KEY CONSTRAINT NAME IS NULL AFTER RESTART # base bug#24818604 [GR] # CREATE TABLE t1 (c1 INT PRIMARY KEY); CREATE TABLE t2 (c1 INT PRIMARY KEY, FOREIGN KEY (c1) REFERENCES t1(c1)); INSERT INTO t1 VALUES (1); INSERT INTO t2 VALUES (1); SELECT unique_constraint_name FROM information_schema.referential_constraints WHERE table_name = 't2'; UNIQUE_CONSTRAINT_NAME PRIMARY # restart SELECT unique_constraint_name FROM information_schema.referential_constraints WHERE table_name = 't2'; UNIQUE_CONSTRAINT_NAME PRIMARY SELECT * FROM t1; c1 1 SELECT unique_constraint_name FROM information_schema.referential_constraints WHERE table_name = 't2'; UNIQUE_CONSTRAINT_NAME PRIMARY DROP TABLE t2; DROP TABLE t1; # # BUG#25976199 GROUP_REPLICATION.GR_FOREIGN_CHECKS_DISABLED TEST FAILING # ON PB2 # SET foreign_key_checks=0; CREATE TABLE child_table (c1 INT PRIMARY KEY, FOREIGN KEY (c1) REFERENCES parent_table(c1)); CREATE TABLE parent_table (c1 INT PRIMARY KEY); SET foreign_key_checks=1; SELECT * FROM INFORMATION_SCHEMA.INNODB_FOREIGN WHERE ID='test/child_table_ibfk_1'; ID FOR_NAME REF_NAME N_COLS TYPE test/child_table_ibfk_1 test/child_table test/parent_table 1 48 SELECT * FROM INFORMATION_SCHEMA.INNODB_FOREIGN_COLS WHERE ID='test/child_table_ibfk_1'; ID FOR_COL_NAME REF_COL_NAME POS test/child_table_ibfk_1 c1 c1 1 DROP TABLE parent_table; ERROR HY000: Cannot drop table 'parent_table' referenced by a foreign key constraint 'child_table_ibfk_1' on table 'child_table'. DROP TABLE child_table; DROP TABLE parent_table; # # Bug#26764604 - INNODB: FAILING ASSERTION: COL_NR < TABLE->N_DEF # SELECT @@foreign_key_checks; @@foreign_key_checks 1 CREATE TABLE t1 ( pk int(11) NOT NULL AUTO_INCREMENT, unique1 int(11) DEFAULT NULL, unique2 int(11) DEFAULT NULL, two int(11) DEFAULT NULL, four int(11) DEFAULT NULL, ten int(11) DEFAULT NULL, twenty int(11) DEFAULT NULL, forty int(11) DEFAULT NULL, sixty int(11) DEFAULT NULL, eighty int(11) DEFAULT NULL, tenPercent int(11) DEFAULT NULL, twentyPercent int(11) DEFAULT NULL, fiftyPercent int(11) DEFAULT NULL, unique1gc int(11) GENERATED ALWAYS AS ((unique1 + unique2)) VIRTUAL, unique2gc int(11) GENERATED ALWAYS AS ((unique1 * unique2)) VIRTUAL, twogc int(11) GENERATED ALWAYS AS (((two * two) + 1)) VIRTUAL, fourgc int(11) GENERATED ALWAYS AS (((four + four) - 1)) VIRTUAL, tengc int(11) GENERATED ALWAYS AS ((twogc + ten)) VIRTUAL, twentygc int(11) GENERATED ALWAYS AS ((((twenty * twogc) * unique1) % 20)) VIRTUAL, fortygc int(11) GENERATED ALWAYS AS (forty) VIRTUAL, sixtygc int(11) GENERATED ALWAYS AS (sixty) VIRTUAL, eightygc int(11) GENERATED ALWAYS AS ((((eighty - twentygc) - ten) - two)) VIRTUAL, PRIMARY KEY (pk), KEY allkey(unique1,unique2,two,four,ten,twenty,forty,sixty,eighty,tenPercent,twentyPercent,fiftyPercent), KEY kugc1 (unique1gc), KEY kugc2 (unique2gc), KEY kumixgc1 (unique1gc,unique2gc), KEY kgc1 (twogc,fourgc), KEY kgc2 (fourgc,tengc), KEY kgc3 (tengc,twentygc), KEY kgc4 (twentygc,fortygc), KEY kgc5 (fortygc,sixtygc), KEY kgc6 (sixtygc,eightygc), KEY allkeygc(unique1gc,unique2gc,twogc,fourgc,tengc,twentygc,fortygc,sixtygc,eightygc) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; Warnings: Warning 1681 Integer display width is deprecated and will be removed in a future release. Warning 1681 Integer display width is deprecated and will be removed in a future release. Warning 1681 Integer display width is deprecated and will be removed in a future release. Warning 1681 Integer display width is deprecated and will be removed in a future release. Warning 1681 Integer display width is deprecated and will be removed in a future release. Warning 1681 Integer display width is deprecated and will be removed in a future release. Warning 1681 Integer display width is deprecated and will be removed in a future release. Warning 1681 Integer display width is deprecated and will be removed in a future release. Warning 1681 Integer display width is deprecated and will be removed in a future release. Warning 1681 Integer display width is deprecated and will be removed in a future release. Warning 1681 Integer display width is deprecated and will be removed in a future release. Warning 1681 Integer display width is deprecated and will be removed in a future release. Warning 1681 Integer display width is deprecated and will be removed in a future release. Warning 1681 Integer display width is deprecated and will be removed in a future release. Warning 1681 Integer display width is deprecated and will be removed in a future release. Warning 1681 Integer display width is deprecated and will be removed in a future release. Warning 1681 Integer display width is deprecated and will be removed in a future release. Warning 1681 Integer display width is deprecated and will be removed in a future release. Warning 1681 Integer display width is deprecated and will be removed in a future release. Warning 1681 Integer display width is deprecated and will be removed in a future release. Warning 1681 Integer display width is deprecated and will be removed in a future release. Warning 1681 Integer display width is deprecated and will be removed in a future release. CREATE TABLE t2_fk ( pk int(11) NOT NULL, sixty int(11) DEFAULT NULL, PRIMARY KEY (pk), CONSTRAINT fk6 FOREIGN KEY (sixty) REFERENCES t1(sixty) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; ERROR HY000: Failed to add the foreign key constraint. Missing index for constraint 'fk6' in the referenced table 't1' DROP TABLE t1; # # Bug#27014308 - UPGRADING TO 8.0.3 FAILS IF FOREIGN KEYS OF EXACTLY 64 CHARACTERS ARE PRESENT # # test with FK identifier of length exactly 64 characters; CREATE TABLE parent ( id INT NOT NULL, PRIMARY KEY (id) ) ENGINE=INNODB; CREATE TABLE child ( id INT, xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx INT, INDEX par_ind (xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx), CONSTRAINT `xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx` FOREIGN KEY (xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx) REFERENCES parent(id) ON DELETE CASCADE ) ENGINE=INNODB; DROP TABLE child; DROP TABLE parent; # test with FK identifier of length exactly 65 characters, # child table creation should fail CREATE TABLE parent ( id INT NOT NULL, PRIMARY KEY (id) ) ENGINE=INNODB; CREATE TABLE child ( id INT, xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx INT, INDEX par_ind (xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx), CONSTRAINT `xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx` FOREIGN KEY (xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx) REFERENCES parent(id) ON DELETE CASCADE ) ENGINE=INNODB; ERROR 42000: Identifier name 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' is too long DROP TABLE parent; # Test delete/update rules combination. CREATE TABLE t1 (a INT NOT NULL, b INT NOT NULL, INDEX idx(a)) ENGINE=InnoDB; CREATE TABLE t2 (a INT KEY, b INT, INDEX ind(b), FOREIGN KEY (b) REFERENCES t1(a)) ENGINE=InnoDB; SELECT * FROM INFORMATION_SCHEMA.INNODB_FOREIGN; ID FOR_NAME REF_NAME N_COLS TYPE test/t2_ibfk_1 test/t2 test/t1 1 48 DROP TABLE t2; CREATE TABLE t2 (a INT KEY, b INT, INDEX ind(b), FOREIGN KEY (b) REFERENCES t1(a) ON DELETE CASCADE) ENGINE=InnoDB; SELECT * FROM INFORMATION_SCHEMA.INNODB_FOREIGN; ID FOR_NAME REF_NAME N_COLS TYPE test/t2_ibfk_1 test/t2 test/t1 1 33 DROP TABLE t2; CREATE TABLE t2 (a INT KEY, b INT, INDEX ind(b), FOREIGN KEY (b) REFERENCES t1(a) ON DELETE SET NULL) ENGINE=InnoDB; SELECT * FROM INFORMATION_SCHEMA.INNODB_FOREIGN; ID FOR_NAME REF_NAME N_COLS TYPE test/t2_ibfk_1 test/t2 test/t1 1 34 DROP TABLE t2; CREATE TABLE t2 (a INT KEY, b INT, INDEX ind(b), FOREIGN KEY (b) REFERENCES t1(a) ON DELETE NO ACTION) ENGINE=InnoDB; SELECT * FROM INFORMATION_SCHEMA.INNODB_FOREIGN; ID FOR_NAME REF_NAME N_COLS TYPE test/t2_ibfk_1 test/t2 test/t1 1 48 DROP TABLE t2; CREATE TABLE t2 (a INT KEY, b INT, INDEX ind(b), FOREIGN KEY (b) REFERENCES t1(a) ON UPDATE CASCADE) ENGINE=InnoDB; SELECT * FROM INFORMATION_SCHEMA.INNODB_FOREIGN; ID FOR_NAME REF_NAME N_COLS TYPE test/t2_ibfk_1 test/t2 test/t1 1 20 DROP TABLE t2; CREATE TABLE t2 (a INT KEY, b INT, INDEX ind(b), FOREIGN KEY (b) REFERENCES t1(a) ON UPDATE SET NULL) ENGINE=InnoDB; SELECT * FROM INFORMATION_SCHEMA.INNODB_FOREIGN; ID FOR_NAME REF_NAME N_COLS TYPE test/t2_ibfk_1 test/t2 test/t1 1 24 DROP TABLE t2; CREATE TABLE t2 (a INT KEY, b INT, INDEX ind(b), FOREIGN KEY (b) REFERENCES t1(a) ON UPDATE NO ACTION) ENGINE=InnoDB; SELECT * FROM INFORMATION_SCHEMA.INNODB_FOREIGN; ID FOR_NAME REF_NAME N_COLS TYPE test/t2_ibfk_1 test/t2 test/t1 1 48 DROP TABLE t2; CREATE TABLE t2 (a INT KEY, b INT, INDEX ind(b), FOREIGN KEY (b) REFERENCES t1(a) ON DELETE CASCADE ON UPDATE CASCADE) ENGINE=InnoDB; SELECT * FROM INFORMATION_SCHEMA.INNODB_FOREIGN; ID FOR_NAME REF_NAME N_COLS TYPE test/t2_ibfk_1 test/t2 test/t1 1 5 DROP TABLE t2; CREATE TABLE t2 (a INT KEY, b INT, INDEX ind(b), FOREIGN KEY (b) REFERENCES t1(a) ON DELETE CASCADE ON UPDATE SET NULL) ENGINE=InnoDB; SELECT * FROM INFORMATION_SCHEMA.INNODB_FOREIGN; ID FOR_NAME REF_NAME N_COLS TYPE test/t2_ibfk_1 test/t2 test/t1 1 9 DROP TABLE t2; CREATE TABLE t2 (a INT KEY, b INT, INDEX ind(b), FOREIGN KEY (b) REFERENCES t1(a) ON DELETE CASCADE ON UPDATE NO ACTION) ENGINE=InnoDB; SELECT * FROM INFORMATION_SCHEMA.INNODB_FOREIGN; ID FOR_NAME REF_NAME N_COLS TYPE test/t2_ibfk_1 test/t2 test/t1 1 33 DROP TABLE t2; CREATE TABLE t2 (a INT KEY, b INT, INDEX ind(b), FOREIGN KEY (b) REFERENCES t1(a) ON DELETE CASCADE ON UPDATE RESTRICT) ENGINE=InnoDB; SELECT * FROM INFORMATION_SCHEMA.INNODB_FOREIGN; ID FOR_NAME REF_NAME N_COLS TYPE test/t2_ibfk_1 test/t2 test/t1 1 1 DROP TABLE t2; CREATE TABLE t2 (a INT KEY, b INT, INDEX ind(b), FOREIGN KEY (b) REFERENCES t1(a) ON DELETE SET NULL ON UPDATE CASCADE) ENGINE=InnoDB; SELECT * FROM INFORMATION_SCHEMA.INNODB_FOREIGN; ID FOR_NAME REF_NAME N_COLS TYPE test/t2_ibfk_1 test/t2 test/t1 1 6 DROP TABLE t2; CREATE TABLE t2 (a INT KEY, b INT, INDEX ind(b), FOREIGN KEY (b) REFERENCES t1(a) ON DELETE SET NULL ON UPDATE SET NULL) ENGINE=InnoDB; SELECT * FROM INFORMATION_SCHEMA.INNODB_FOREIGN; ID FOR_NAME REF_NAME N_COLS TYPE test/t2_ibfk_1 test/t2 test/t1 1 10 DROP TABLE t2; CREATE TABLE t2 (a INT KEY, b INT, INDEX ind(b), FOREIGN KEY (b) REFERENCES t1(a) ON DELETE SET NULL ON UPDATE NO ACTION) ENGINE=InnoDB; SELECT * FROM INFORMATION_SCHEMA.INNODB_FOREIGN; ID FOR_NAME REF_NAME N_COLS TYPE test/t2_ibfk_1 test/t2 test/t1 1 34 DROP TABLE t2; CREATE TABLE t2 (a INT KEY, b INT, INDEX ind(b), FOREIGN KEY (b) REFERENCES t1(a) ON DELETE SET NULL ON UPDATE RESTRICT) ENGINE=InnoDB; SELECT * FROM INFORMATION_SCHEMA.INNODB_FOREIGN; ID FOR_NAME REF_NAME N_COLS TYPE test/t2_ibfk_1 test/t2 test/t1 1 2 DROP TABLE t2; CREATE TABLE t2 (a INT KEY, b INT, INDEX ind(b), FOREIGN KEY (b) REFERENCES t1(a) ON DELETE NO ACTION ON UPDATE CASCADE) ENGINE=InnoDB; SELECT * FROM INFORMATION_SCHEMA.INNODB_FOREIGN; ID FOR_NAME REF_NAME N_COLS TYPE test/t2_ibfk_1 test/t2 test/t1 1 20 DROP TABLE t2; CREATE TABLE t2 (a INT KEY, b INT, INDEX ind(b), FOREIGN KEY (b) REFERENCES t1(a) ON DELETE NO ACTION ON UPDATE SET NULL) ENGINE=InnoDB; SELECT * FROM INFORMATION_SCHEMA.INNODB_FOREIGN; ID FOR_NAME REF_NAME N_COLS TYPE test/t2_ibfk_1 test/t2 test/t1 1 24 DROP TABLE t2; CREATE TABLE t2 (a INT KEY, b INT, INDEX ind(b), FOREIGN KEY (b) REFERENCES t1(a) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE=InnoDB; SELECT * FROM INFORMATION_SCHEMA.INNODB_FOREIGN; ID FOR_NAME REF_NAME N_COLS TYPE test/t2_ibfk_1 test/t2 test/t1 1 48 DROP TABLE t2; CREATE TABLE t2 (a INT KEY, b INT, INDEX ind(b), FOREIGN KEY (b) REFERENCES t1(a) ON DELETE NO ACTION ON UPDATE RESTRICT) ENGINE=InnoDB; SELECT * FROM INFORMATION_SCHEMA.INNODB_FOREIGN; ID FOR_NAME REF_NAME N_COLS TYPE test/t2_ibfk_1 test/t2 test/t1 1 16 DROP TABLE t2; CREATE TABLE t2 (a INT KEY, b INT, INDEX ind(b), FOREIGN KEY (b) REFERENCES t1(a) ON DELETE RESTRICT ON UPDATE CASCADE) ENGINE=InnoDB; SELECT * FROM INFORMATION_SCHEMA.INNODB_FOREIGN; ID FOR_NAME REF_NAME N_COLS TYPE test/t2_ibfk_1 test/t2 test/t1 1 4 DROP TABLE t2; CREATE TABLE t2 (a INT KEY, b INT, INDEX ind(b), FOREIGN KEY (b) REFERENCES t1(a) ON DELETE RESTRICT ON UPDATE SET NULL) ENGINE=InnoDB; SELECT * FROM INFORMATION_SCHEMA.INNODB_FOREIGN; ID FOR_NAME REF_NAME N_COLS TYPE test/t2_ibfk_1 test/t2 test/t1 1 8 DROP TABLE t2; CREATE TABLE t2 (a INT KEY, b INT, INDEX ind(b), FOREIGN KEY (b) REFERENCES t1(a) ON DELETE RESTRICT ON UPDATE NO ACTION) ENGINE=InnoDB; SELECT * FROM INFORMATION_SCHEMA.INNODB_FOREIGN; ID FOR_NAME REF_NAME N_COLS TYPE test/t2_ibfk_1 test/t2 test/t1 1 32 DROP TABLE t2; CREATE TABLE t2 (a INT KEY, b INT, INDEX ind(b), FOREIGN KEY (b) REFERENCES t1(a) ON DELETE RESTRICT ON UPDATE RESTRICT) ENGINE=InnoDB; SELECT * FROM INFORMATION_SCHEMA.INNODB_FOREIGN; ID FOR_NAME REF_NAME N_COLS TYPE test/t2_ibfk_1 test/t2 test/t1 1 0 DROP TABLE t2; DROP TABLE t1; # # Bug#28581468 - RENAMING PARENT COLUMN IN A FOREIGN KEY FAILS WITH STRANGE ERROR. # CREATE TABLE t1 (a INT NOT NULL, b INT NOT NULL, INDEX idx(a)) ENGINE=InnoDB; CREATE TABLE t2 (a INT KEY, b INT, INDEX ind(b), FOREIGN KEY (b) REFERENCES t1(a) ON DELETE CASCADE ON UPDATE CASCADE) ENGINE=InnoDB; ALTER TABLE t1 CHANGE a id INT; CHECK TABLE t1; Table Op Msg_type Msg_text test.t1 check status OK CHECK TABLE t2; Table Op Msg_type Msg_text test.t2 check status OK DROP TABLE t1, t2; CREATE TABLE t1 (a INT NOT NULL, b INT NOT NULL, INDEX idx(a)) ENGINE=InnoDB; CREATE TABLE t2 (a INT KEY, b INT, INDEX ind(b), FOREIGN KEY (b) REFERENCES t1(a) ON DELETE CASCADE ON UPDATE CASCADE) ENGINE=InnoDB; ALTER TABLE t1 CHANGE a id INT NOT NULL; CHECK TABLE t1; Table Op Msg_type Msg_text test.t1 check status OK CHECK TABLE t2; Table Op Msg_type Msg_text test.t2 check status OK DROP TABLE t1, t2; # # Bug #27020089 "I_S.INNODB_SYS_FOREIGN LOST FOREIGN KEY INFORMATION." # CREATE TABLE t1(pk INT PRIMARY KEY); CREATE TABLE `......................................` (fk INT, FOREIGN KEY(fk) REFERENCES t1(pk)); SHOW CREATE TABLE `......................................`; Table Create Table ...................................... CREATE TABLE `......................................` ( `fk` int(11) DEFAULT NULL, KEY `fk` (`fk`), CONSTRAINT `......................................_ibfk_1` FOREIGN KEY (`fk`) REFERENCES `t1` (`pk`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci SELECT id, for_name, ref_name FROM information_schema.innodb_foreign WHERE id LIKE 'test%'; id for_name ref_name test/......................................_ibfk_1 test/...................................... test/t1 DROP TABLES `......................................`, t1;