首页  >  文章  >  数据库  >  在 MySQL 中使用 ALTER IGNORE TABLE ADD UNIQUE 时会保留哪条记录?

在 MySQL 中使用 ALTER IGNORE TABLE ADD UNIQUE 时会保留哪条记录?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-11-04 02:51:29758浏览

Which record is preserved when using `ALTER IGNORE TABLE ADD UNIQUE` in MySQL?

MySQL:ALTER IGNORE TABLE ADD UNIQUE - 记录截断影响

带有 IGNORE 子句的 ALTER TABLE 语句用于添加唯一约束到表中,可能会删除重复的记录。然而,保留的具体记录可能会引起疑问。

问题:

执行以下语句时:

ALTER IGNORE TABLE `my_table`
ADD UNIQUE (`type`, `owner`);

哪条记录如果存在多个具有相同类型和所有者值的重复记录,是否会保留?

答案:

从 MySQL 5.7.4 开始,IGNORE 子句不再存在

但是,在允许 IGNORE 子句的早期 MySQL 版本中:

  • 保留第一条记录:表中具有唯一组合键的第一行将被保留。
  • 重复行被截断:具有相同唯一组合键的所有其他行将被已删除.

根据MySQL文档,“第一个”可能指的是具有最低主键值的记录。在您的情况下,假设 ID 列是主键,则 ID 最小的记录将被保留。

以上是在 MySQL 中使用 ALTER IGNORE TABLE ADD UNIQUE 时会保留哪条记录?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn