--source include/have_innodb.inc set sql_mode=no_engine_substitution; eval set storage_engine = innodb; set autocommit=1; --disable_result_log --disable_query_log --disable_warnings let $i=500; while ($i) { --eval create table t_$i(f1 int not null auto_increment primary key) --eval create table tt_$i(f1 int not null auto_increment primary key, f2 int not null, foreign key fk1(f2) references t_$i(f1)) --eval insert into t_$i values(), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), () --eval insert into tt_$i(f2) select f1 from t_$i --eval insert into tt_$i(f2) select f1 from t_$i --eval insert into tt_$i(f2) select f1 from t_$i dec $i; } --enable_warnings --enable_query_log --enable_result_log create temporary table KEY_COLUMN_USAGE like INFORMATION_SCHEMA.KEY_COLUMN_USAGE; create temporary table COLUMNS like INFORMATION_SCHEMA.COLUMNS; truncate table KEY_COLUMN_USAGE; insert into COLUMNS select * from INFORMATION_SCHEMA.COLUMNS; insert into KEY_COLUMN_USAGE select * from INFORMATION_SCHEMA.KEY_COLUMN_USAGE; select now(); SELECT t1.referenced_table_name, t1.referenced_column_name, t0.ORDINAL_POSITION, t0.COLUMN_NAME, COLUMN_TYPE, IS_NULLABLE, EXTRA, COLUMN_DEFAULT, COLUMN_COMMENT FROM INFORMATION_SCHEMA.`COLUMNS` as t0 left outer JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE AS t1 ON t1.TABLE_SCHEMA = t0.TABLE_SCHEMA AND t1.TABLE_NAME = t0.TABLE_NAME AND t1.COLUMN_NAME = t0.COLUMN_NAME WHERE t0.TABLE_SCHEMA = schema() AND t0.TABLE_NAME = 'tt_1' ORDER BY t0.TABLE_NAME, t0.ORDINAL_POSITION, t0.COLUMN_NAME, DATA_TYPE, CHARACTER_MAXIMUM_LENGTH ; select now(); SELECT t1.referenced_table_name, t1.referenced_column_name, t0.ORDINAL_POSITION, t0.COLUMN_NAME, COLUMN_TYPE, IS_NULLABLE, EXTRA, COLUMN_DEFAULT, COLUMN_COMMENT FROM `COLUMNS` as t0 left outer JOIN KEY_COLUMN_USAGE AS t1 ON t1.TABLE_SCHEMA = t0.TABLE_SCHEMA AND t1.TABLE_NAME = t0.TABLE_NAME AND t1.COLUMN_NAME = t0.COLUMN_NAME WHERE t0.TABLE_SCHEMA = schema() AND t0.TABLE_NAME = 'tt_1' ORDER BY t0.TABLE_NAME, t0.ORDINAL_POSITION, t0.COLUMN_NAME, DATA_TYPE, CHARACTER_MAXIMUM_LENGTH ; select now();