MySQL数据库——表的CURD(Delete)

时间:2025-03-26 20:44:45
  • -- 准备测试表
  • mysql> CREATE TABLE for_truncate (
  • -> id INT PRIMARY KEY AUTO_INCREMENT,
  • -> name VARCHAR(20)
  • -> );
  • Query OK, 0 rows affected (0.02 sec)
  • -- 准备测试数据
  • mysql> INSERT INTO for_truncate (name) VALUES ('A'), ('B'), ('C');
  • Query OK, 3 rows affected (0.00 sec)
  • Records: 3 Duplicates: 0 Warnings: 0
  • mysql> desc for_truncate;
  • +-------+-------------+------+-----+---------+----------------+
  • | Field | Type | Null | Key | Default | Extra |
  • +-------+-------------+------+-----+---------+----------------+
  • | id | int(11) | NO | PRI | NULL | auto_increment |
  • | name | varchar(20) | YES | | NULL | |
  • +-------+-------------+------+-----+---------+----------------+
  • 2 rows in set (0.00 sec)
  • mysql> select * from for_truncate;
  • +----+------+
  • | id | name |
  • +----+------+
  • | 1 | A |
  • | 2 | B |
  • | 3 | C |
  • +----+------+
  • 3 rows in set (0.00 sec)
  • -- AUTO_INCREMENT=4
  • mysql> show create table for_truncate\G
  • *************************** 1. row ***************************
  • Table: for_truncate
  • Create Table: CREATE TABLE `for_truncate` (
  • `id` int(11) NOT NULL AUTO_INCREMENT,
  • `name` varchar(20) DEFAULT NULL,
  • PRIMARY KEY (`id`)
  • ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8
  • 1 row in set (0.00 sec)
  • -- 截断表
  • mysql> truncate for_truncate;
  • Query OK, 0 rows affected (0.01 sec)
  • -- 表还在
  • mysql> show tables;
  • +-------------------+
  • | Tables_in_user_db |
  • +-------------------+
  • | for_delete |
  • | for_truncate |
  • | result |
  • | test |
  • +-------------------+
  • 4 rows in set (0.00 sec)
  • -- 数据已经清空
  • mysql> select * from for_truncate;
  • Empty set (0.00 sec)
  • -- AUTO_INCREMENT不见了
  • mysql> show create table for_truncate\G
  • *************************** 1. row ***************************
  • Table: for_truncate
  • Create Table: CREATE TABLE `for_truncate` (
  • `id` int(11) NOT NULL AUTO_INCREMENT,
  • `name` varchar(20) DEFAULT NULL,
  • PRIMARY KEY (`id`)
  • ) ENGINE=InnoDB DEFAULT CHARSET=utf8
  • 1 row in set (0.00 sec)
  • -- 插入数据
  • mysql> insert into for_truncate (name) values ('E');
  • Query OK, 1 row affected (0.01 sec)
  • -- id重新开始计数
  • mysql> select * from for_truncate;
  • +----+------+
  • | id | name |
  • +----+------+
  • | 1 | E |
  • +----+------+
  • 1 row in set (0.00 sec)
  • -- AUTO_INCREMENT=2
  • mysql> show create table for_truncate\G
  • *************************** 1. row ***************************
  • Table: for_truncate
  • Create Table: CREATE TABLE `for_truncate` (
  • `id` int(11) NOT NULL AUTO_INCREMENT,
  • `name` varchar(20) DEFAULT NULL,
  • PRIMARY KEY (`id`)
  • ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8
  • 1 row in set (0.00 sec)