加入收藏 | 设为首页 | 会员中心 | 我要投稿 汽车网 (https://www.0577qiche.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 系统 > 正文

MariaDB数据库的重复项怎样处理 如何删掉和防止

发布时间:2023-08-17 13:36:54 所属栏目:系统 来源:
导读: MariaDB数据库的重复项怎样处理?数据库中难免是会存在重复数据的,例如重复记录或表格等等,有重复项也是MariaDB所允许的,一般情况这些重复不会造成什么问题。但是,也会存在影响的情况。对此这篇我们就主要来

    MariaDB数据库的重复项怎样处理?数据库中难免是会存在重复数据的,例如重复记录或表格等等,有重复项也是MariaDB所允许的,一般情况这些重复不会造成什么问题。但是,也会存在影响的情况。对此这篇我们就主要来了解如何找到重复项,删除重复项,并防止重复创建。

    MariaDB 管理重复项

    策略和工具

     有四种管理重复项的关键方法:

 用JOIN搜索它们,用临时表删除它们。

 使用INSERT...ON DUPLICATE KEY UPDATE时要更新的重复项。

 使用DISTINCT删除SELECT语句的结果并删除重复项。

 使用INSERT IGNORE停止重复项的插入。

    使用Join和临时表

     只需像内部连接一样执行半连接,然后删除临时表中的重复项。

    使用INSERT

     当执行INSERT...ON DUPLICATE KEY UPDATE时发现重复的唯一密钥或主键时,会执行更新。发现多个唯一密钥后,它只更新第一个密钥。因此,不要在具有多个唯一索引的表上使用它。

     查看以下示例,该示例展示了插入填充字段时包含索引值的表中会发生什么:

INSERT INTO add_dupl VALUES (1,'Apple');

ERROR 1062 (23000): Duplicate entry '1' for key 'PRIMARY'

        注意——如果找不到key, INSERT...ON DUPLICATE KEY UPDATE语句的执行类似于普通的insert语句。

    使用DISTINCT

     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

     INSERT IGNORE语句指示MariaDB在发现重复记录时取消插入。查看下面给出的例子:

mysql> INSERT IGNORE INTO customer_tbl (LN, FN)

   VALUES( 'Lex', 'Luther');

     另外,请注意重复项背后的逻辑。一些表需要根据该表数据的性质进行重复,在管理重复记录的策略中满足这一需求。

(编辑:汽车网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章