我怎么能在一个MySQL表的列上使用phpMyAdmin的“唯一键约束”?
当前回答
约束可以通过语法删除:
ALTER TABLE 从MySQL 8.0.19开始,ALTER TABLE允许使用更通用的(和SQL标准的)语法来删除和修改任何类型的现有约束,其中约束类型由约束名称决定:
例子:
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演示
其他回答
唯一的约束也是一个索引。
首先使用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
我的表名是买家,它有一个唯一的约束列emp_id,现在我要删除emp_id
步骤1:exec sp_helpindex买家,查看图片文件
步骤2:复制索引地址
step3: alter table buyers drop constraint [UQ__buyers__1299A860D9793F2E] 更改购桌人 删除列emp_id
注意:
引用
而不是买家更改为您的表名:)
引用
也就是所有带约束的列emp_id都被删除了!
能够在表上放置唯一键约束的索引是PRIMARY和unique索引。
若要删除列上的唯一键约束,但保留索引,可以使用index类型删除并重新创建索引。
注意,所有表都有一个标记为PRIMARY的索引是个好主意。
这可能会有帮助:
在sql终端内部
第一步:
显示{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}
要使用phpmyadmin添加UNIQUE约束,请转到该表的结构,并在下面找到并单击,
要删除UNIQUE约束,同样的方法,进入结构,向下滚动到索引选项卡,找到下面,点击下拉,
希望这有用。
喜欢。)
推荐文章
- 从MySQL表中删除唯一约束
- 表被标记为崩溃,应该修复
- MySql: Tinyint (2) vs Tinyint(1) -有什么不同?
- 如何在MySQL表中移动列?
- 在MySQL中选择最后一行
- 如何删除MySQL root密码
- MySQL对重复键更新在一个查询中插入多行
- mysql_connect():[2002]没有这样的文件或目录(试图通过unix:///tmp/mysql.sock连接)在
- MySQL:如何复制行,但改变几个字段?
- 不能删除或更新父行:外键约束失败
- Mysql错误1452:不能添加或更新子行:外键约束失败
- MySQL DISTINCT在GROUP_CONCAT()上
- 第一次设计数据库:我是否过度设计了?
- MySQL选择一个列DISTINCT,与其他列相对应
- 错误1022 -不能写;表中重复的键