Удалить уникальные ключи из всех столбцов - PullRequest
0 голосов
/ 13 декабря 2011

Есть ли запрос на удаление всех ключей UNIQUE из каждого столбца? Я не прошу делать это с каждым конкретным столбцом, потому что мне просто нужен прямой запрос для удаления из всех столбцов вместо изменения и удаления ключа из одного столбца.

1 Ответ

0 голосов
/ 13 декабря 2011

Специальной команды, которая удаляла бы все уникальные ключи, не существует, но вы можете прочитать информацию из 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'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...