从MySQL表中删除唯一约束

从MySQL表中删除唯一约束,mysql,Mysql,如何使用phpMyAdmin在MySQL表的列上删除“唯一键约束”?唯一约束也是索引 首先使用SHOW INDEX FROM tbl_name查找索引的名称。索引的名称存储在该查询结果中名为key\u name的列中 然后您可以使用: 或语法: 能够在表上放置唯一键约束的索引是PRIMARY和unique索引 要删除列上的唯一键约束但保留索引,可以使用类型index删除并重新创建索引 请注意,对于所有表,最好将索引标记为PRIMARY您可以根据请求使用phpMyAdmin从表中删除唯一约束,如下

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

唯一约束也是索引

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

然后您可以使用:

或语法:


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

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


请注意,对于所有表,最好将索引标记为
PRIMARY

您可以
根据请求使用phpMyAdmin从表中删除唯一约束,如下表所示。在翼展场上放置了一个唯一的约束。在本例中,约束的名称与字段名称相同

对于WAMP 3.0: 点击结构 在下面添加1列,您将看到“-index”
单击-index并删除所需的任何索引。

如果要从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)
);

其中,activity\u uqniueactivity\u name列的唯一约束。

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

要删除唯一约束,同样的方法,转到结构并向下滚动到Indexes选项卡,在下面找到并单击drop,

希望这能奏效

享受;)

  • 第一次删除表

  • 转到SQL

  • 使用此代码:

    CREATE  TABLE service( --tablename 
      `serviceid` int(11) NOT NULL,--columns
      `customerid` varchar(20) DEFAULT NULL,--columns
      `dos` varchar(30) NOT NULL,--columns
      `productname` varchar(150) NOT NULL,--columns
      `modelnumber` bigint(12) NOT NULL,--columns
      `serialnumber` bigint(20) NOT NULL,--columns
      `serviceby` varchar(20) DEFAULT NULL--columns
    )
    --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`);
    

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

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

    步骤2:复制索引地址

    步骤3:alter table BUDERS drop约束[UQ__BUDERS__1299A860D9793F2E] 更改表格买家 删除列emp_id

    注:

    大宗报价

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

    大宗报价


    这就是所有带有约束的列名称emp_id都将被删除

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

    ALTER TABLE tbl
    DROP INDEX  unique_address;
    

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

    从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;
    

    对不起,先生,在提出问题之前,我已经试过了,但是没有working@Ankur慕克吉:我忘了提到:您必须将tbl_name和index_name分别更改为实际表的名称和实际索引的名称。您可以在MySQL查询浏览器中看到这些名称。您还可以执行
    SHOW CREATE TABLE tbl_name
    。错误消息:“您的SQL语法有错误;请查看与您的MySQL服务器版本对应的手册,以了解在第1行使用near'(玩家id,年份,锦标赛)的正确语法。”@Ankur Mukherjee:在我看来,我建议的方法是最好的方法。我在问题的某个地方读到了使用phpMyAdmin。。。@systemovich提供的答案应标记为已接受的答案。需要注意的是,indexes部分在默认情况下是折叠的,并通过12px字体的小而微妙的链接展开,该部分位于屏幕截图中。但多亏了你,我找到了。保佑你的脸+1之所以选择此项,是因为@thomasrutter已经提到,删除唯一约束可能会对查询性能产生不利影响,而这可以通过将
    唯一
    索引替换为常规的
    索引来缓解。此解决方案正是我所寻找的。
    
    CREATE  TABLE service( --tablename 
      `serviceid` int(11) NOT NULL,--columns
      `customerid` varchar(20) DEFAULT NULL,--columns
      `dos` varchar(30) NOT NULL,--columns
      `productname` varchar(150) NOT NULL,--columns
      `modelnumber` bigint(12) NOT NULL,--columns
      `serialnumber` bigint(20) NOT NULL,--columns
      `serviceby` varchar(20) DEFAULT NULL--columns
    )
    --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`);
    
    ALTER TABLE tbl
    DROP INDEX  unique_address;
    
    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;