Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

mysql 清空数据库

作者:花小泽ノ   发布日期:2026-06-12   浏览:94

-- 清空数据库中的所有表,但保留数据库结构

-- 使用以下命令可以清空指定数据库中的所有表数据,但不会删除表结构。
-- 请注意,这将删除所有表中的数据,无法恢复,请谨慎操作。

USE your_database_name;

-- 获取所有表名并生成删除语句
SET FOREIGN_KEY_CHECKS = 0; -- 关闭外键检查,防止删除时外键约束报错
SELECT Concat('TRUNCATE TABLE ', table_name, ';')
FROM information_schema.tables
WHERE table_schema = 'your_database_name';

-- 执行上述查询结果生成的SQL语句来清空所有表

SET FOREIGN_KEY_CHECKS = 1; -- 恢复外键检查

-- 如果你需要直接执行清空操作,可以使用如下存储过程:
DELIMITER $$

CREATE PROCEDURE truncate_all_tables()
BEGIN
    SET FOREIGN_KEY_CHECKS = 0;
    SELECT Concat('TRUNCATE TABLE ', table_name, ';')
    INTO @truncate_sql
    FROM information_schema.tables
    WHERE table_schema = 'your_database_name';

    PREPARE stmt FROM @truncate_sql;
    EXECUTE stmt;
    DEALLOCATE PREPARE stmt;

    SET FOREIGN_KEY_CHECKS = 1;
END$$

DELIMITER ;

-- 调用存储过程清空所有表
CALL truncate_all_tables();

解释说明:

  1. 关闭外键检查SET FOREIGN_KEY_CHECKS = 0; 用于关闭外键检查,以防止在清空表时因外键约束而报错。
  2. 生成清空表的SQL语句:通过查询 information_schema.tables 获取当前数据库中所有表的名称,并生成 TRUNCATE TABLE 语句。
  3. 执行清空操作:可以通过手动执行生成的SQL语句,或者创建一个存储过程来自动执行这些语句。
  4. 恢复外键检查SET FOREIGN_KEY_CHECKS = 1; 用于恢复外键检查,确保数据库的完整性。

请根据实际情况替换 your_database_name 为你的数据库名称。

上一篇:mysql重命名表命令

下一篇:mysql 修改数据

大家都在看

mysql二级索引

mysqlavg函数保留小数

mysql显示表内容

mysql收集表统计信息

mysql经纬度距离计算

mysql 加密

mysql大小写转换函数

存储过程mysql

mysql 1265

mysql with语句

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站