create table test_del(id int auto_increment,name varchar(10),primary key(id)); insert into test_del(name) values(‘xuhao‘),(‘fdsa‘),(‘fddsf‘); create table test_truc(id int auto_increment,name varchar(10),primary key(id)); insert into test_truc(name) values(‘xuhao‘),(‘fdsa‘),(‘fddsf‘);
mysql> select * from test_del; +----+-------+ | id | name | +----+-------+ | 1 | xuhao | | 2 | fdsa | | 3 | fddsf | +----+-------+ 3 rows in set mysql> select * from test_truc; +----+-------+ | id | name | +----+-------+ | 1 | xuhao | | 2 | fdsa | | 3 | fddsf | +----+-------+ 3 rows in set mysql> delete from test_del; Query OK, 3 rows affected mysql> delete from test_truc where true; Query OK, 3 rows affected mysql> insert into test_del(name) values(‘xuhao‘),(‘fdsa‘),(‘fddsf‘); Query OK, 3 rows affected Records: 3 Duplicates: 0 Warnings: 0 mysql> insert into test_truc(name) values(‘xuhao‘),(‘fdsa‘),(‘fddsf‘); Query OK, 3 rows affected Records: 3 Duplicates: 0 Warnings: 0 mysql> select * from test_del; +----+-------+ | id | name | +----+-------+ | 4 | xuhao | | 5 | fdsa | | 6 | fddsf | +----+-------+ 3 rows in set mysql> select * from test_truc; +----+-------+ | id | name | +----+-------+ | 4 | xuhao | | 5 | fdsa | | 6 | fddsf | +----+-------+ 3 rows in set mysql> truncate test_truc; Query OK, 0 rows affected mysql> insert into test_truc(name) values(‘xuhao‘),(‘fdsa‘),(‘fddsf‘); Query OK, 3 rows affected Records: 3 Duplicates: 0 Warnings: 0 mysql> select * from test_truc; +----+-------+ | id | name | +----+-------+ | 1 | xuhao | | 2 | fdsa | | 3 | fddsf | +----+-------+ 3 rows in set
对于表中的自增id,delete和truncate的处理方式是不同,另外据说delete操作会写入日志,truncate不写入日志,言下之意,truncate慎用,不易恢复。
时间: 2024-10-09 06:25:20