MySQL 数据库删除表中重复数据

采集数据的时候,由于先期对页面结构的分析不完善,导致采漏了一部分数据。完善代码之后重新运行 Scrapy,又采集了一些重复的数据,搜了下删除重复数据的方法。

N.B. 删除数据表的重复数据时,请先备份数据表。

方法一

方法二

P.S. 当数据表的数据量较多时,建议使用方法二,大大节省时间。

参考链接:

  1. Delete all Duplicate Rows except for One in MySQL? [duplicate]
  2. sql – Remove duplicate rows in MySQL – Stack Overflow

MySQL 中根据已存在的表创建一张新表的方法

基于已存在表的结构创建另一个表:

 

复制表的所有数据:

 

CREATE TABLE 的官方文档链接。注意关于 LIKE 选项的描述:

使用 LIKE 基于另一个表的定义来创建一个空表,新表将包含原始表所有列的属性及索引:

使用 CREATE TABLE new_table LIKE original_table 来创建新表,新表将使用和原始表相同版本的表存储格式(table storage format)。在原始表上需要有 SELECT 权限。

LIKE 只能用于基表(base tables),不能用于视图(views)。

CREATE TABLE … LIKE 语句不会保留原始表自定义的表选项,数据文件夹(DATA DIRECTORY)或者索引文件夹(INDEX DIRECTORY)以及外键的定义(foreign key definations)。

 

参考链接:

  1. Create table in MySQL that matches another table? – Stack Overflow