CREATE TABLE t1 (id INT NOT NULL, PRIMARY KEY (id)) ENGINE=INNODB; CREATE TABLE t2 (id INT PRIMARY KEY, t1_id INT, INDEX par_ind (t1_id, id), FOREIGN KEY (t1_id) REFERENCES t1(id) ON DELETE CASCADE, FOREIGN KEY (t1_id) REFERENCES t1(id) ON UPDATE CASCADE) ENGINE=INNODB; CREATE TABLE t3 (id INT PRIMARY KEY, t2_id INT, INDEX par_ind (t2_id), FOREIGN KEY (id, t2_id) REFERENCES t2(t1_id, id) ON DELETE CASCADE) ENGINE=INNODB; select * from information_schema.TABLE_CONSTRAINTS where TABLE_SCHEMA= "test"; CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_SCHEMA TABLE_NAME CONSTRAINT_TYPE def test PRIMARY test t1 PRIMARY KEY def test PRIMARY test t2 PRIMARY KEY def test PRIMARY test t3 PRIMARY KEY def test t2_ibfk_1 test t2 FOREIGN KEY def test t2_ibfk_2 test t2 FOREIGN KEY def test t3_ibfk_1 test t3 FOREIGN KEY select * from information_schema.KEY_COLUMN_USAGE where TABLE_SCHEMA= "test"; CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME def test PRIMARY def test t1 id 1 NULL NULL NULL NULL def test PRIMARY def test t2 id 1 NULL NULL NULL NULL def test PRIMARY def test t3 id 1 NULL NULL NULL NULL def test t2_ibfk_1 def test t2 t1_id 1 1 test t1 id def test t2_ibfk_2 def test t2 t1_id 1 1 test t1 id def test t3_ibfk_1 def test t3 id 1 1 test t2 t1_id def test t3_ibfk_1 def test t3 t2_id 2 2 test t2 id drop table t3, t2, t1; CREATE TABLE t1(a1 INT NOT NULL, a2 INT NOT NULL, PRIMARY KEY(a1, a2)) ENGINE=INNODB; CREATE TABLE t2(b1 INT, b2 INT, INDEX (b1, b2), CONSTRAINT A1 FOREIGN KEY (b1, b2) REFERENCES t1(a1, a2) ON UPDATE CASCADE ON DELETE NO ACTION) ENGINE=INNODB; CREATE TABLE t3(b1 INT, b2 INT, INDEX t3_indx (b1, b2), CONSTRAINT A2 FOREIGN KEY (b1, b2) REFERENCES t2(b1, b2) ON UPDATE SET NULL ON DELETE RESTRICT) ENGINE=INNODB; CREATE TABLE t4(b1 INT, b2 INT, UNIQUE KEY t4_ukey (b1, b2), CONSTRAINT A3 FOREIGN KEY (b1, b2) REFERENCES t3(b1, b2) ON UPDATE NO ACTION ON DELETE SET NULL) ENGINE=INNODB; CREATE TABLE t5(b1 INT, b2 INT, INDEX (b1, b2), CONSTRAINT A4 FOREIGN KEY (b1, b2) REFERENCES t4(b1, b2) ON UPDATE RESTRICT ON DELETE CASCADE) ENGINE=INNODB; select a.CONSTRAINT_SCHEMA, b.TABLE_NAME, CONSTRAINT_TYPE, b.CONSTRAINT_NAME, UNIQUE_CONSTRAINT_SCHEMA, UNIQUE_CONSTRAINT_NAME, MATCH_OPTION, UPDATE_RULE, DELETE_RULE, b.REFERENCED_TABLE_NAME from information_schema.TABLE_CONSTRAINTS a, information_schema.REFERENTIAL_CONSTRAINTS b where a.CONSTRAINT_SCHEMA = 'test' and a.CONSTRAINT_SCHEMA = b.CONSTRAINT_SCHEMA and a.CONSTRAINT_NAME = b.CONSTRAINT_NAME; CONSTRAINT_SCHEMA TABLE_NAME CONSTRAINT_TYPE CONSTRAINT_NAME UNIQUE_CONSTRAINT_SCHEMA UNIQUE_CONSTRAINT_NAME MATCH_OPTION UPDATE_RULE DELETE_RULE REFERENCED_TABLE_NAME test t2 FOREIGN KEY A1 test PRIMARY NONE CASCADE NO ACTION t1 test t3 FOREIGN KEY A2 test b1 NONE SET NULL RESTRICT t2 test t4 FOREIGN KEY A3 test t3_indx NONE NO ACTION SET NULL t3 test t5 FOREIGN KEY A4 test t4_ukey NONE RESTRICT CASCADE t4 drop tables t5, t4, t3, t2, t1; create database `db-1`; use `db-1`; create table `t-2` ( id int(10) unsigned not null auto_increment, primary key (id) ) engine=innodb; create table `t-1` ( id int(10) unsigned not null auto_increment, idtype int(10) unsigned not null, primary key (id), key fk_t1_1 (idtype), constraint fk_t1_1 foreign key (idtype) references `t-2` (id) ) engine=innodb; use test; select referenced_table_schema, referenced_table_name from information_schema.key_column_usage where constraint_schema = 'db-1' order by referenced_table_schema, referenced_table_name; referenced_table_schema referenced_table_name NULL NULL NULL NULL db-1 t-2 drop database `db-1`; create table t1(id int primary key) engine = Innodb; create table t2(pid int, foreign key (pid) references t1(id)) engine = Innodb; set foreign_key_checks = 0; drop table t1; select UNIQUE_CONSTRAINT_NAME from information_schema.referential_constraints where constraint_schema = schema(); UNIQUE_CONSTRAINT_NAME NULL drop table t2; set foreign_key_checks = 1; # # Bug#55973 Assertion `thd->transaction.stmt.is_empty()' # on CREATE TABLE .. SELECT I_S.PART # DROP TABLE IF EXISTS t1; DROP VIEW IF EXISTS v1; CREATE VIEW v1 AS SELECT 1; CREATE TABLE t1 engine = InnoDB AS SELECT * FROM information_schema.partitions WHERE table_schema= 'test' AND table_name= 'v1'; DROP TABLE t1; DROP VIEW v1; CREATE TABLE t1(i int) ENGINE=Innodb ROW_FORMAT=REDUNDANT DATA DIRECTORY='MYSQLTEST_VARDIR/tmp'; SELECT CREATE_OPTIONS FROM INFORMATION_SCHEMA.TABLES where TABLE_NAME='t1'; CREATE_OPTIONS row_format=REDUNDANT DATA DIRECTORY='MYSQLTEST_VARDIR/tmp/' DROP TABLE t1;