从MySQL表中删除唯一约束

时间:2010-08-15 14:07:48

标签: mysql

如何使用phpMyAdmin在MySQL表的列上删除“唯一键约束”?

11 个答案:

答案 0 :(得分:295)

唯一约束也是一个索引。

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

然后您可以使用DROP INDEX

DROP INDEX index_name ON tbl_name

ALTER TABLE语法:

ALTER TABLE tbl_name DROP INDEX index_name

答案 1 :(得分:109)

您可以{strong}使用phpMyAdmin 从表中获取唯一约束,如下表所示。 Wingspan领域有一个独特的约束。在此实例中,约束的名称与字段名称相同。

alt text

答案 2 :(得分:11)

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

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

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

答案 3 :(得分:1)

对于WAMP 3.0: 单击结构 在添加1列下方,您会看到' - 索引' 单击 - 索引并删除所需的索引。

答案 4 :(得分:1)

如果要从mysql数据库表中删除唯一约束,请使用带丢弃索引的alter table。

示例:

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_uqniue activity_name 列的UNIQUE约束。

答案 5 :(得分:1)

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

enter image description here

要以相同方式删除UNIQUE约束,请转到结构并向下滚动直到Indexes Tab,然后在下面找到并单击drop, enter image description here

希望这行得通。

享受;)

答案 6 :(得分:0)

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

ALTER TABLE tbl
DROP INDEX  unique_address;

答案 7 :(得分:0)

可以使用以下语法删除约束:

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<>fiddle demo

答案 8 :(得分:0)

这可能会有所帮助:

在你的 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}

答案 9 :(得分:-2)

1。首先删除表格

2.go to sql

CREATE  TABLE service( --tablename 
  `serviceid` int(11) NOT NULL,--coloums
  `customerid` varchar(20) DEFAULT NULL,--coloums
  `dos` varchar(30) NOT NULL,--coloums
  `productname` varchar(150) NOT NULL,--coloums
  `modelnumber` bigint(12) NOT NULL,--coloums
  `serialnumber` bigint(20) NOT NULL,--coloums
  `serviceby` varchar(20) DEFAULT NULL--coloums
)
--INSERT VALUES
INSERT INTO `service` (`serviceid`, `customerid`, `dos`, `productname`, `modelnumber`, `serialnumber`, `serviceby`) VALUES
(1, '1', '12/10/2018', 'mouse', 1234555, 234234324, '9999'),
(2, '09', '12/10/2018', 'vhbgj', 79746385, 18923984, '9999'),
(3, '23', '12/10/2018', 'mouse', 123455534, 11111123, '9999'),
(4, '23', '12/10/2018', 'mouse', 12345, 84848, '9999'),
(5, '546456', '12/10/2018', 'ughg', 772882, 457283, '9999'),
(6, '23', '12/10/2018', 'keyboard', 7878787878, 22222, '1'),
(7, '23', '12/10/2018', 'java', 11, 98908, '9999'),
(8, '128', '12/10/2018', 'mouse', 9912280626, 111111, '9999'),
(9, '23', '15/10/2018', 'hg', 29829354, 4564564646, '9999'),
(10, '12', '15/10/2018', '2', 5256, 888888, '9999');
--before droping table
ALTER TABLE `service`
  ADD PRIMARY KEY (`serviceid`),
  ADD  unique`modelnumber` (`modelnumber`),
  ADD  unique`serialnumber` (`serialnumber`),
  ADD unique`modelnumber_2` (`modelnumber`);
--after droping table
ALTER TABLE `service`
  ADD PRIMARY KEY (`serviceid`),
  ADD  modelnumber` (`modelnumber`),
  ADD  serialnumber` (`serialnumber`),
  ADD modelnumber_2` (`modelnumber`);

答案 10 :(得分:-2)

我的表名是Buyer,它具有唯一的约束列emp_id,现在我要删除emp_id

步骤1:exec sp_helpindex买家,请参见图片文件

步骤2:复制索引地址

enter image description here

第3步:更改表购买者放置限制[UQ__buyers__1299A860D9793F2E] 更改表买家 删除列emp_id

注意:

  

Blockquote

代替买家将其更改为您的表格名称:)

  

Blockquote

那所有带有约束的列名emp_id都将被删除!