【发布时间】:2010-11-10 01:16:56
【问题描述】:
我看到了一些与此相关的其他问题,但它们不是 MySQL。
数据库是实时数据库,所以我不想删除并重新创建表。我只是想让一个列不再是唯一的,这本质上是不那么宽松的,所以它不应该引起任何问题。
【问题讨论】:
标签: mysql unique alter-table
我看到了一些与此相关的其他问题,但它们不是 MySQL。
数据库是实时数据库,所以我不想删除并重新创建表。我只是想让一个列不再是唯一的,这本质上是不那么宽松的,所以它不应该引起任何问题。
【问题讨论】:
标签: mysql unique alter-table
如果您的列使用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 将导致您的表隐式重新创建并重建所有索引,这将锁定该表并可能使其在很长一段时间内无法访问。
【讨论】:
unique 约束的情况下重新创建它,那么很高兴看到答案中提到...
这些是 phpmyadmin 应用程序的说明(如果您使用的是 phpMyAdmin)::
在某些情况下,开发者(您)可能不想放弃它,而只是将“唯一性”修改为“非唯一性”。
步骤:
在上下文中转到要进行修改的表
点击“结构”选项卡(主要在浏览旁边)
在这里找到答案: 来源:https://forums.phpfreaks.com/topic/164827-phpmyadmin-how-to-make-not-unique/
【讨论】:
只有DROP 唯一索引。 不应该它是一个实时数据库这一事实。如果它是一个非常大的表,您可能会在删除索引时暂时阻止一些查询。但这应该只有在您添加索引时才会发生。
ALTER TABLE table_name DROP INDEX index_name;
【讨论】: