MySQL - 截断表

MySQL - 截断表 首页 / MySQL入门教程 / MySQL - 截断表

MySQL中的Turrunge语句会删除完整的数据而不删除其结构。它是 ddl或数据定义语言的一部分命令。通常,当无涯教程想要从表中删除整个数据时,使用此命令而不删除表结构。

语法

以下语法解释了Truncate命令以从表中删除数据:

TRUNCATE [TABLE] table_name;

在此语法中,首先,无涯教程将指定表名(table_name)要删除的数据。语法中的表([TABLE])关键字不是强制性的。但是,使用它来区分TRUNCATE()函数和 truncate表语句是一个很好的做法。

Truncate Table示例

让无涯教程展示如何在一个例子的帮助下截断表。首先,将使用以下语句创建一个名为"customer"的表:

CREATE TABLE customer (  
    Id int PRIMARY KEY NOT NULL,   
    Name varchar(45) NOT NULL,   
    Product varchar(45) DEFAULT NULL,   
    Country varchar(25) DEFAULT NULL,   
    Year int NOT NULL  
);  

接下来,无涯教程将使用以下语句向此表添加值:

INSERT INTO customer ( Id, Name, Product, Country, Year)   
VALUES (1, 'Stephen', 'Computer', 'USA', 2015),   
(2, 'Joseph', 'Laptop', 'India', 2016),   
(3, 'John', 'TV', 'USA', 2016),  
(4, 'Donald', 'Laptop', 'England', 2015),  
(5, 'Joseph', 'Mobile', 'India', 2015),  
(6, 'Peter', 'Mouse', 'England', 2016);

现在,通过执行 SELECT语句 是否插入的记录:

无涯教程网

mysql> SELECT * FROM customer;  

无涯教程将获得输出,如下所示:

mysql truncate table

现在,执行以下语句,使用上面讨论的TRUNCATE语法截断(truncate)表客户:

链接:https://www.learnfk.comhttps://www.learnfk.com/mysql/mysql-truncate-table.html

来源:LearnFk无涯教程网

mysql> TRUNCATE TABLE customer;

执行成功后,无涯教程将获得以下输出:

mysql truncate table

正如无涯教程所看到的,此查询返回 0行受影响即使删除所有表记录也是如此。可以通过再次执行SELECT语句验证数据删除。此命令提供以下输出,显示表中没有的记录:

mysql truncate table

使用外键截断表

如果无涯教程执行使用外键约束的表的截断操作,将收到以下错误:

ERROR 1217 (23000): Cannot delete or update a parent row: a foreign key constraint fails

在这种情况下,无涯教程需要登录 MYSQL 服务器和禁用外键检查,然后执行如下所示:

SET FOREIGN_KEY_CHECKS=0;

现在,无涯教程能够截断表格。执行后,重新启用外键检查,如下所述:

SET FOREIGN_KEY_CHECKS=1;

截断所有表

MySQL中的Truncate语句会一次删除一个表。如果无涯教程想删除多个表,需要执行单独的截断语句。下面的示例显示了如何在MySQL中截断多个表:

TRUNCATE TABLE table_name1;
TRUNCATE TABLE table_name2;
TRUNCATE TABLE table_name3;

无涯教程还可以使用下面的SQL查询,一次使用数据库中的表名时生成多个Truncate表命令:

SELECT Concat('TRUNCATE TABLE ', TABLE_NAME)
FROM INFORMATION_SCHEMA.TABLES
WHERE table_schema = 'database_name';

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

AI技术内参 -〔洪亮劼〕

深入浅出gRPC -〔李林锋〕

程序员的数学基础课 -〔黄申〕

消息队列高手课 -〔李玥〕

浏览器工作原理与实践 -〔李兵〕

JavaScript核心原理解析 -〔周爱民〕

A/B测试从0到1 -〔张博伟〕

Dubbo源码剖析与实战 -〔何辉〕

超级访谈:对话道哥 -〔吴翰清(道哥)〕

好记忆不如烂笔头。留下您的足迹吧 :)