在某些情况下,重复确实会导致问题,并且它们常常由于隐式动作或MariaDB命令的宽松策略而出现。 有多种方法可以控制此问题,查找重复项,删除重复项,并防止重复创建。
有四个关键方法来管理重复 -
只需像内部联接那样执行半连接,然后删除使用临时表找到的重复。
当INSERT ... ON DUPLICATE KEY UPDATE发现重复的唯一或主键时,它执行更新。 发现多个唯一键时,它只更新第一个。 因此,不要在具有多个唯一索引的表上使用它。
查看以下示例,该示例显示在插入到填充字段时在包含索引值的表中发生的情况 -
INSERT INTO add_dupl VALUES (1,'Apple');
ERROR 1062 (23000): Duplicate entry '1' for key 'PRIMARY'
注意 - 如果没有找到任何键,INSERT ... ON DUPLICATE KEY UPDATE语句的执行方式与正常的insert语句相似。
DISTINCT子句从结果中删除重复项。 DISTINCT子句的一般语法如下 -
SELECT DISTINCT fields
FROM table
[WHERE conditions];
注 - 带有DISTINCT子句的语句的结果 -
使用单个表达式的DISTINCT子句查看以下语句 -
SELECT DISTINCT product_id
FROM products
WHERE product_name = 'DustBlaster 5000';
使用多个表达式查看以下示例 -
SELECT DISTINCT product_name, product_id
FROM products
WHERE product_id < 30
INSERT IGNORE语句指示MariaDB在发现重复记录时取消插入。 查看下面给出的使用示例 -
mysql> INSERT IGNORE INTO customer_tbl (LN, FN)
VALUES( 'Lex', 'Luther');
另外,注意重复的逻辑。 某些表基于表数据的性质需要重复。 满足您在管理重复记录的策略中的需要。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有