我看到了一些与此相关的其他问题,但它们不是MySQL。
数据库是一个实时数据库,所以我不想删除并重新创建表。我只是想让一个专栏不再具有独特性,这在本质上是不太宽松的,所以它不会引起任何问题。
答案 0 :(得分:29)
如果使用UNIQUE
子句将列定义为唯一,则使用:
ALTER TABLE mytable DROP INDEX constraint_name
,或者,如果您的约束是隐式命名的,
ALTER TABLE mytable DROP INDEX column_name
如果使用PRIMARY KEY
子句将其定义为唯一,请使用:
ALTER TABLE mytable DROP PRIMARY KEY
但请注意,如果您的表为InnoDB
,则删除PRIMARY KEY
将导致隐式重新创建表并重建所有索引,这将锁定表并可能使其无法访问很长一段时间。
答案 1 :(得分:4)
这些是phpmyadmin应用程序的说明(如果您使用的是phpMyAdmin)::
在某些情况下,开发人员(您)可能不想放弃它,而只是将“唯一性”修改为“不唯一”。
步骤:
转到要进行修改的上下文中的表格
单击“结构”选项卡(主要位于“浏览”旁边)
答案在这里找到: 资料来源:https://forums.phpfreaks.com/topic/164827-phpmyadmin-how-to-make-not-unique/
答案 2 :(得分:1)
只需DROP
唯一索引。 不应该是一个活动数据库的问题。如果它是一个非常大的表,您可能会在删除索引时临时阻止某些查询。但只有在添加索引时才会发生 。
ALTER TABLE table_name DROP INDEX index_name;