Специальной команды, которая удаляла бы все уникальные ключи, не существует, но вы можете прочитать информацию из information_schema
. KEY_COLUMN_USAGE
и сгенерировать операторы 'ALTER TABLE DROP INDEX'.
Примечание, KEY_COLUMN_USAGE содержит информациюобо всех ограничениях (первичных, уникальных и внешних ключах), поэтому, чтобы пропустить внешние ключи, используйте запрос с условием WHERE, например -
SELECT TABLE_SCHEMA, TABLE_NAME, CONSTRAINT_NAME FROM information_schema.key_column_usage
WHERE REFERENCED_TABLE_SCHEMA IS NULL;
..., чтобы исключить первичные ключи из набора результатов, используйте это условие -
WHERE ... AND CONSTRAINT_NAME <> 'PRIMARY'