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