从MySQL表中删除唯一约束

我怎么能在一个MySQL表的列上使用phpMyAdmin的“唯一键约束”?

250204 次浏览

唯一的约束也是一个索引。

首先使用SHOW INDEX FROM tbl_name找出索引的名称。索引的名称存储在该查询结果中名为key_name的列中。

然后你可以使用指数下降:

DROP INDEX index_name ON tbl_name

ALTER TABLE语法:

ALTER TABLE tbl_name DROP INDEX index_name

能够在表上放置唯一键约束的索引是PRIMARYUNIQUE索引。

若要删除列上的唯一键约束,但保留索引,可以使用INDEX类型删除并重新创建索引。

注意,所有表都有一个标记为PRIMARY的索引是个好主意。

你可以从表使用phpMyAdmin请求DROP一个唯一的约束,如下表所示。翼展场有一个独特的限制。在本例中,约束的名称与字段名称相同。

alt text

WAMP 3.0

点击结构 下面添加1列,你会看到“-索引”

.

.

如果你想从MySQL数据库表中删除唯一的约束,使用alter table with drop index。

例子:

CREATE TABLE unique_constraints (
unid INT,
activity_name VARCHAR(100),
CONSTRAINT activty_uqniue UNIQUE (activity_name),
PRIMARY KEY (unid)
);
ALTER TABLE unique_constraints
DROP INDEX activty_uqniue;

其中activty_uqniueactivity_name列的UNIQUE约束。

要使用phpmyadmin添加UNIQUE约束,请转到该表的结构,并在下面找到并单击,

enter image description here

要删除UNIQUE约束,以同样的方式,进入结构,向下滚动到索引选项卡,找到下面并单击下拉, enter image description here < / p >

希望这有用。

喜欢。)

我的表名是买家,它有一个唯一的约束列emp_id,现在我要删除emp_id

步骤1:exec sp_helpindex买家,查看图片文件

步骤2:复制索引地址

enter image description here

step3: alter table buyers drop constraint [UQ__buyers__1299A860D9793F2E] 更改购桌人 删除列emp_id

注意:

引用

而不是买家更改为您的表名:)

引用

也就是所有带约束的列emp_id都被删除了!

当删除唯一键时,我们使用索引

ALTER TABLE tbl
DROP INDEX  unique_address;

约束可以通过语法删除:

ALTER TABLE

从MySQL 8.0.19开始,ALTER TABLE允许使用更通用的(和SQL标准的)语法来删除和修改任何类型的现有约束,其中约束类型由约束名称ALTER TABLE tbl_name DROP CONSTRAINT symbol;决定

例子:

CREATE TABLE tab(id INT, CONSTRAINT unq_tab_id UNIQUE(id));


-- checking constraint name if autogenerated
SELECT * FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE TABLE_NAME = 'tab';


-- dropping constraint
ALTER TABLE tab DROP CONSTRAINT unq_tab_id;

db<>小提琴demo

这可能会有帮助:

在sql终端内部

第一步:

SHOW INDEX FROM {YOUR_TABLE_NAME}

第二步:

SHOW INDEX FROM {YOUR_TABLE_NAME} WHERE Column_name='ACTUAL_COLUMN_NAME_YOU_GOT_FROM_FIRST_STEP_OUTPUT'

第三步:

ORIGINAL_KEY_NAME_VALUE = SECOND_STEP_RESPONSE["Key_name"]

第四步:

ALTER TABLE {YOUR_TABLE_NAME} DROP INDEX ${ORIGINAL_KEY_NAME_VALUE}