更改实时表格以使密钥非唯一

Ale*_*ird 14 mysql unique alter-table

我看到了一些与此相关的其他问题,但它们不是MySQL.

该数据库是一个实时数据库,因此我不想删除并重新创建该表.我只是想让一个列不再是唯一的,这在本质上是不太宽松的,所以它不应该导致任何问题.

Qua*_*noi 32

如果您的列使用UNIQUE子句定义为唯一,则使用:

ALTER TABLE mytable DROP INDEX constraint_name
Run Code Online (Sandbox Code Playgroud)

,或者,如果您的约束被隐式命名,

ALTER TABLE mytable DROP INDEX column_name
Run Code Online (Sandbox Code Playgroud)

如果使用PRIMARY KEY子句定义了唯一,请使用:

ALTER TABLE mytable DROP PRIMARY KEY
Run Code Online (Sandbox Code Playgroud)

但请注意,如果您的表是InnoDB,则drop PRIMARY KEY将导致隐式重新创建表并重建所有索引,这将锁定表并可能使其在相当长的时间内无法访问.

  • 问题不是如何使密钥不唯一,而不是如何删除它?如果唯一的方法是删除密钥并在没有“唯一”约束的情况下重新创建它,那么很高兴看到答案中提到的... (5认同)

App*_*uel 6

这些是 phpmyadmin 应用程序的说明(如果您使用的是 phpMyAdmin)::

在某些情况下,开发人员(您)可能不想删除它,而只是将“唯一性”修改为“非唯一性”。

脚步 :

  1. 转到上下文中的表,您要在其中进行修改

  2. 单击“结构”选项卡(主要在浏览旁边)

  3. 查找列下方的“+索引”链接。是的...现在点击它
  4. 现在您可以看到所有“索引”,您现在可以单击“删除”按钮或链接进行修改。

答案在这里找到:来源:https : //forums.phpfreaks.com/topic/164827-phpmyadmin-how-to-make-not-unique/