从所有列中删除UNIQUE键

时间:2011-12-13 15:54:12

标签: mysql unique-key alter

是否有查询从每列中删除所有UNIQUE个键?我不是要求对每个特定的列执行此操作,因为我只需要从所有列中删除直接查询,而不是从一列中更改和删除键。

1 个答案:

答案 0 :(得分:0)

没有特殊命令会删除所有唯一键,但您可以从information_schemaKEY_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'