MySQL:让一个列独一无二?
我有一张正在生产的桌子。我意识到有些专栏应该是独一无二的。进入phpMyAdmin并更改这些列以使其唯一是否安全MySQL:让一个列独一无二?,mysql,phpmyadmin,unique-constraint,Mysql,Phpmyadmin,Unique Constraint,我有一张正在生产的桌子。我意识到有些专栏应该是独一无二的。进入phpMyAdmin并更改这些列以使其唯一是否安全 ALTER TABLE `foo` ADD UNIQUE ( `bar` ) 只有在表中预先存在的值不是唯一的情况下才会出现问题,否则我认为不会有任何问题。如果这些列中已经存在一些重复的值,那么这将生成错误。如果这些列中没有任何重复的值,那么就可以了 您没有重复->将应用密钥而不会出现问题 您确实有重复->将给出错误消息,您的数据未发生任何变化 所有行都是唯一的,除了其中包含NU
ALTER TABLE `foo` ADD UNIQUE ( `bar` )
只有在表中预先存在的值不是唯一的情况下才会出现问题,否则我认为不会有任何问题。如果这些列中已经存在一些重复的值,那么这将生成错误。如果这些列中没有任何重复的值,那么就可以了
还有一件事,如果您有一个prod DB,您还必须有一个dev DB,您可以放心地对其进行测试,对吗?按照以下步骤从phpmyadmin面板应用唯一的列值: 转到表结构。单击唯一关键字,如下所示- 单击确认框中的确定- 将应用列的唯一值约束。 或者您可以运行mysql查询:
ALTER TABLE user ADD UNIQUE(电子邮件)代码>我有这个问题,我的值不是唯一的。我也找不到一个简单的方法在PHPMyAdmin中编辑这个问题。我是这样解决的:
我点击了需要更新的表格
我导出了表,将其更改为CSV导出,然后进行编辑
它可以手动更新非唯一值
确保我仍然在我导出的表中(因为我
为了保持标题完整),我导入了新保存的CSV
希望这能为将来节省一些时间。运行它并查看。如果这些值是唯一的,它将应用而不会出错。否则,MySQL将报告无法应用约束,因为存在一个或多个值的重复项,在您再次尝试时,MySQL将成功应用约束之前,您必须处理这些重复项。如果此命令因存在非唯一值而失败,您可以尝试ALTER IGNORE TABLE[…]-这样无论如何都会创建索引,但当然会删除违反唯一约束的记录;所以小心点,这确实帮了我的忙。谢谢