Задача у меня ставится так: есть однотипные таблицы, из которых мне нужно удалить составной ключ.
При составлении скрипта я столкнулся со сложностями при получении информации из INFORMATION_SCHEMA об этом ключе: не вижу никаких его следов ни в таблице COLUMNS, ни в таблице KEY_COLUMN_USAGE.
О других ключах есть, о нём - нет.
Надоумьте, пожалуйста, что я упускаю.
CREATE TABLE `pages_402` (
`pageid` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
`md5_3bytes` binary(3) DEFAULT NULL,
`url` varchar(255) NOT NULL,
PRIMARY KEY (`pageid`),
KEY `md5_3bytes` (`md5_3bytes`),
KEY `pageid` (`pageid`,`url`(2))
) ENGINE=MyISAM
mysql> SELECT * FROM information_schema.KEY_COLUMN_USAGE K
-> WHERE K.`TABLE_NAME`='pages_402'\G
*************************** 1. row ***************************
CONSTRAINT_CATALOG: NULL
CONSTRAINT_SCHEMA: rate_private
CONSTRAINT_NAME: PRIMARY
TABLE_CATALOG: NULL
TABLE_SCHEMA: rate_private
TABLE_NAME: pages_402
COLUMN_NAME: pageid
ORDINAL_POSITION: 1
POSITION_IN_UNIQUE_CONSTRAINT: NULL
REFERENCED_TABLE_SCHEMA: NULL
REFERENCED_TABLE_NAME: NULL
REFERENCED_COLUMN_NAME: NULL
1 row in set (0.00 sec)
mysql> SELECT * FROM information_schema.COLUMNS
-> WHERE TABLE_NAME = 'pages_402'\G
*************************** 1. row ***************************
TABLE_CATALOG: NULL
TABLE_SCHEMA: rate_private
TABLE_NAME: pages_402
COLUMN_NAME: pageid
ORDINAL_POSITION: 1
COLUMN_DEFAULT: NULL
IS_NULLABLE: NO
DATA_TYPE: mediumint
CHARACTER_MAXIMUM_LENGTH: NULL
CHARACTER_OCTET_LENGTH: NULL
NUMERIC_PRECISION: 7
NUMERIC_SCALE: 0
CHARACTER_SET_NAME: NULL
COLLATION_NAME: NULL
COLUMN_TYPE: mediumint(8) unsigned
COLUMN_KEY: PRI
EXTRA: auto_increment
PRIVILEGES: select,insert,update,references
COLUMN_COMMENT:
*************************** 2. row ***************************
TABLE_CATALOG: NULL
TABLE_SCHEMA: rate_private
TABLE_NAME: pages_402
COLUMN_NAME: md5_3bytes
ORDINAL_POSITION: 2
COLUMN_DEFAULT: NULL
IS_NULLABLE: YES
DATA_TYPE: binary
CHARACTER_MAXIMUM_LENGTH: 3
CHARACTER_OCTET_LENGTH: 3
NUMERIC_PRECISION: NULL
NUMERIC_SCALE: NULL
CHARACTER_SET_NAME: NULL
COLLATION_NAME: NULL
COLUMN_TYPE: binary(3)
COLUMN_KEY: MUL
EXTRA:
PRIVILEGES: select,insert,update,references
COLUMN_COMMENT:
*************************** 3. row ***************************
TABLE_CATALOG: NULL
TABLE_SCHEMA: rate_private
TABLE_NAME: pages_402
COLUMN_NAME: url
ORDINAL_POSITION: 3
COLUMN_DEFAULT: NULL
IS_NULLABLE: NO
DATA_TYPE: varchar
CHARACTER_MAXIMUM_LENGTH: 255
CHARACTER_OCTET_LENGTH: 255
NUMERIC_PRECISION: NULL
NUMERIC_SCALE: NULL
CHARACTER_SET_NAME: cp1251
COLLATION_NAME: cp1251_general_ci
COLUMN_TYPE: varchar(255)
COLUMN_KEY:
EXTRA:
PRIVILEGES: select,insert,update,references
COLUMN_COMMENT:
3 rows in set (0.00 sec)