在mysql中删除多个表中的所有数据

r6l8ljro  于 2022-11-28  发布在  Mysql
关注(0)|答案(3)|浏览(128)

我有一个有100个表的数据库。我想使用mysql命令或在phpmyadmin中删除所有表中的数据

0pizxfdo

0pizxfdo1#

  • 备份数据库结构(使用带有--no-data命令行选项的mysqldump)。
  • 删除数据库。
  • 从转储还原数据库。

这个方法对于FOREIGN KEY关系没有问题。而不是使用DELETE/TRUNCATE,在DELETE/TRUNCATE中,你必须按照一定的顺序清除表的内容(如果你在清除从表之前清除主表,那么由于引用约束冲突,删除将失败)。

2admgd59

2admgd592#

使用information_schema.TABLES进行动态查询和执行。

select concat('delete from ',TABLE_NAME,';') from information_schema.TABLES where TABLE_SCHEMA='databasename';
y1aodyip

y1aodyip3#

或者试试这个

SET FOREIGN_KEY_CHECKS = 0;

SET @TABLES = NULL;
SELECT GROUP_CONCAT('delete from ', table_name,';') INTO @TABLES FROM information_schema.tables 
  WHERE table_schema = 'databasename' and table_name in ('tbl_audit_trail','tbl_celery');
  

SET @TABLES= replace( @TABLES,',','');
select @TABLES;

复制结果并执行

相关问题