我有一个100表的数据库。我想从所有表中删除数据使用mysql命令或在phpmyadmin
- 备份您的数据库结构(使用
mysqldump
和--no-data
命令行选项) - 数据库。
- 从转储中恢复数据库。
这个方法对外键关系没有问题。而不是使用DELETE/TRUNCATE,你必须按照明确的顺序清除表的内容(如果你在从表之前清除主表,那么删除将由于引用约束违反而失败)。
使用information_schema。表进行动态查询和执行。
select concat('delete from ',TABLE_NAME,';') from information_schema.TABLES where TABLE_SCHEMA='databasename';
或者试试这个
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;
复制结果并执行