|NO.Z.00029|——————————|BigDataEnd|——|Java&MySQL单表/约束/事务.V07|——|MySQL.v07|DELETE/TRUNCATE|对自增影响|
一、DELETE和TRUNCATE对自增长的影响
### --- DELETE和TRUNCATE对自增长的影响
——> 删除表中所有数据有两种方式
| 清空表数据的方式 | 特点 |
| DELETE | 只是删除表中所有数据,对自增没有影响 |
| TRUNCATE |
truncate 是将整个表删除掉,然后创建一个新的表自增的主键,重新从 1开始
|
### --- 测试1: delete 删除表中所有数据
-- 目前最后的主键值是 101
SELECT * FROM emp2;
-- delete 删除表中数据,对自增没有影响
DELETE FROM emp2;
-- 插入数据 查看主键
INSERT INTO emp2(ename,sex) VALUES('张百万','男');
INSERT INTO emp2(ename,sex) VALUES('艳秋','女');
### --- 测试2: truncate删除 表中数据
-- 使用 truncate 删除表中所有数据,
TRUNCATE TABLE emp2;
-- 插入数据 查看主键
INSERT INTO emp2(ename,sex) VALUES('张百万','男');
INSERT INTO emp2(ename,sex) VALUES('艳秋','女');
二、DELETE和TRUNCATE对自增长的影响
### --- sql语句
/*
DELETE和TRUNCATE对自增长的影响
delete 删除表中所有数据, 将表中的数据逐条删除.
truncate 删除表中的所有数据, 是将整个表删除,然后再创建一个结构相同表.
*/
-- delete 方式删除所有数据
DELETE FROM emp2; -- delete 删除对自增是没有影响
INSERT INTO emp2(ename,sex) VALUES('张百万','男'); -- 102
INSERT INTO emp2(ename,sex) VALUES('艳秋','女'); -- 103
-- truncate 删除所有数据
TRUNCATE TABLE emp2; -- 自增从1开始
INSERT INTO emp2(ename,sex) VALUES('张百万','男'); -- 1
INSERT INTO emp2(ename,sex) VALUES('艳秋','女'); -- 2
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
——W.S.Landor
浙公网安备 33010602011771号