如何使用phpMyAdmin从MySQL表的列中删除“唯一键约束”?
如何使用phpMyAdmin从MySQL表的列中删除“唯一键约束”?
唯一约束也是一个索引。
首先使用 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
能在表上放置唯一键约束的索引是PRIMARY
和UNIQUE
索引。
要删除列上的唯一键约束但保留索引,可以使用类型为INDEX
的语句来删除并重新创建该索引。
注意,最好让所有表都有一个标为PRIMARY
的索引。
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 列的唯一约束。
这可能有所帮助:
在您的 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}
可以使用以下语法移除约束:
从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;
在删除唯一键时,我们使用索引
ALTER TABLE tbl
DROP INDEX unique_address;
我的表名是buyers,其中有一个唯一约束列emp_id,现在我要删除emp_id
步骤1:执行sp_helpindex buyers命令,查看图像文件
步骤2:复制索引地址
步骤3:修改表buyers,删除约束[UQ__buyers__1299A860D9793F2E],并删除列emp_id。
注意:
引用
请将buyers替换为您的表名 :)
引用
这样,带有约束的列名emp_id就被删除了!