在MySQL中删除表内容

在MySQL中删除表内容,mysql,mysqli,mysqldump,mysql-error-1064,Mysql,Mysqli,Mysqldump,Mysql Error 1064,我有两个表,一个表有150万条记录,另一个表有120万条记录。我有2GB的RAM分配给MySQL 两个表中的公共列都是id mysql> desc day_tran; +-----------------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +--------------

我有两个表,一个表有150万条记录,另一个表有120万条记录。我有2GB的RAM分配给MySQL

两个表中的公共列都是id

mysql> desc day_tran;
+-----------------+-------------+------+-----+---------+----------------+
| Field           | Type        | Null | Key | Default | Extra          |
+-----------------+-------------+------+-----+---------+----------------+
| id              | int(11)     | NO   | PRI | NULL    | auto_increment |
| card_number     | varchar(20) | NO   | MUL | NULL    |                |
| ATM_id          | varchar(20) | NO   | MUL | NULL    |                |
| responder       | varchar(1)  | NO   |     | NULL    |                |
| response_code   | varchar(3)  | NO   |     | NULL    |                |
| Amount          | varchar(20) | NO   |     | NULL    |                |
| Time            | varchar(8)  | NO   |     | NULL    |                |
| RR_number       | varchar(14) | NO   |     | NULL    |                |
| tran_code       | varchar(6)  | NO   |     | NULL    |                |
| reversal_reason | varchar(2)  | NO   |     | NULL    |                |
| date            | varchar(6)  | NO   |     | NULL    |                |
| tlf_date        | varchar(6)  | NO   | MUL | NULL    |                |
+-----------------+-------------+------+-----+---------+----------------+
12 rows in set (0.74 sec)

mysql> desc reversal;
+-----------------+-------------+------+-----+---------+-------+
| Field           | Type        | Null | Key | Default | Extra |
+-----------------+-------------+------+-----+---------+-------+
| id              | int(11)     | NO   |     | 0       |       |
| card_number     | varchar(20) | NO   |     | NULL    |       |
| ATM_id          | varchar(20) | NO   |     | NULL    |       |
| responder       | varchar(1)  | NO   |     | NULL    |       |
| response_code   | varchar(3)  | NO   |     | NULL    |       |
| Amount          | varchar(20) | NO   |     | NULL    |       |
| Time            | varchar(8)  | NO   |     | NULL    |       |
| RR_number       | varchar(14) | NO   |     | NULL    |       |
| tran_code       | varchar(6)  | NO   |     | NULL    |       |
| reversal_reason | varchar(2)  | NO   |     | NULL    |       |
| date            | varchar(6)  | NO   |     | NULL    |       |
| tlf_date        | varchar(6)  | NO   |     | NULL    |       |
+-----------------+-------------+------+-----+---------+-------+
12 rows in set (0.12 sec)
现在我需要从day_tran表中删除Reversion表中的所有行

我尝试了一些删除和创建新表的方法,其中包含了其余的结果,但最终并没有结果

任何解决办法都会对我有很大帮助

DELETE FROM day_tran d INNER JOIN reversal r ON d.id = r.id WHERE d.id = r.id

应该这样做。

您只需使用下面的删除查询即可。如果要根据两个表中通常显示的id删除所有记录

 DELETE FROM reversal r inner join day_tran d on r.id = d.id

您可以使用此查询。不需要WHERE语句或任何子语句来选择:

DELETE FROM reversal r INNER JOIN day_trans d ON r.id = d.id;

你很好。

在我更新之前,你真的复制了我的错误答案吗?他想从day_tran中删除reversalJOIN+WHERE语句中存在的记录?我认为加入就可以完成这项工作,因为您只能获得r.id=d.id的条目。这可能只需要几周的时间。@Sebi2020对不起,我的错误,我有点困惑。。现在我编辑了我的应答错误1064 42000:您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以获得正确的语法,以便在第1行中使用“d.id=r.id上的d.id=r.id”,其中d.id=r.id“What ever delete语句我正在使用它,执行它需要数小时,但什么都没有发生。1。我想从day_tran表2中删除行。表中存在数百万行,RAM非常有限,所以我需要最好的查询。子查询需要大量资源。