MariaDB管理重复的方法有哪些
Admin 2022-09-26 群英技术资讯 505 次浏览
如前面的课程所讨论的,MariaDB在某些情况下允许重复记录和表。 由于不同的数据或对象类型,或作为操作对象的唯一寿命或存储的结果,这些重复中的一些事实上不是重复的。 这些副本通常也没有问题。
在某些情况下,重复确实会导致问题,并且它们常常由于隐式动作或MariaDB命令的宽松策略而出现。 有多种方法可以控制此问题,查找重复项,删除重复项,并防止重复创建。
有四个关键方法来管理重复 -
使用JOIN关联,并用临时表删除他们。
使用INSERT ... ON DUPLICATE KEY UPDATE在发现重复时更新。
使用DISTINCT修剪SELECT语句的结果并删除重复的。
使用INSERT IGNORE停止插入重复项。
只需像内部联接那样执行半连接,然后删除使用临时表找到的重复。
当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子句的语句的结果 -
当使用一个表达式时,它为它返回唯一的值。
当使用多个表达式时,它返回唯一的组合。
它不会忽略NULL值; 因此,结果还包含NULL作为唯一值。
使用单个表达式的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');
另外,注意重复的逻辑。 某些表基于表数据的性质需要重复。 满足您在管理重复记录的策略中的需要。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
很多新手在学习mongoDB的时候会遇到启动报错28663的问题,但是又不知道如何解决,其实这是引擎导致的问题,下面小编就给大家分享一下解决方法,有需要的朋友可以参考一下。
MySQL和MariaDB区别是什么?这篇文章主要给大家介绍MySQL数据库和MariaDB数据库的区别,下面会从两者的功能以及性能等方面进行对比,感兴趣的朋友可以继续往下看。
ALTER命令提供了一种方法来更改现有表的结构,这意味着删除或添加列,修改索引,更改数据类型或更改名称等修改。 ALTER还会在元数据锁定处于活动状态时等待应用更改。
MariaDB MAX()函数用于检索表达式的最大值。
在本章中,我们将学习如何从表中选择数据。下文的讲解详细,步骤过程清晰,对大家进一步学习和理解相关知识有一定的帮助。有这方面学习需要的朋友就继续往下看吧!
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008