CREATE DEFINER=`root`@`localhost` PROCEDURE `reset_database`(DB_NAME VARCHAR(100))
BEGIN
DECLARE done INT DEFAULT FALSE;
DECLARE tableName VARCHAR(100);
DECLARE cur CURSOR FOR SELECT table_name FROM INFORMATION_SCHEMA.tables WHERE table_schema = DB_NAME AND table_type = 'BASE TABLE';
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
OPEN cur;
SET FOREIGN_KEY_CHECKS = 0;
read_loop: LOOP
FETCH cur INTO tableName;
IF done THEN LEAVE read_loop; END IF;
SET @s = CONCAT('truncate table ',tableName);
PREPARE stmt1 FROM @s;
EXECUTE stmt1;
DEALLOCATE PREPARE stmt1;
END LOOP;
SET FOREIGN_KEY_CHECKS = 1;
CLOSE cur;
END;
7条答案
按热度按时间1u4esq0p1#
从@巴勃罗继续管道连接对我来说并不适用-我希望将其限制为单个数据库,然后仅限制为表
fhg3lkii2#
您可以执行以下查询:
然后将结果保存到脚本并运行它。
其它可能性可以是,
1.运行查询
1.将结果复制到剪贴板(COPY)
1.将结果粘贴到MySQL命令解释器(PASTE)
好的。
如果你只是运行查询,你会明白我想说的。
vs91vp4v3#
您可以简单地选择所有表,然后选择truncate all。
o2g1uqev4#
无法使用单个sql查询。
cbwuti445#
在这里,我给您留下一个存储过程,用于将数据库重置为cero
cbjzeqam6#
可能会出现由于外键约束而导致截断失败的情况。如果您仍然希望强制截断,则可以按照Cristiana佩雷拉的建议选择所有表进行截断。
然后,在下面的窗口中单击“ReviewSQL”,而不是单击“Truncate”。
1.复制对话框中的所有查询,然后将其关闭。
1.点击“创建一个新的SQL选项卡来执行查询”。
1.粘贴这两行之间的所有查询并执行。
设置外键检查= 0;
设置外键检查= 1;
lvmkulzt7#
在phpMyAdmin中进入“结构”面板。你会看到你的数据库表的列表。在表下面选中选项“全部选中”来选择所有表。然后在组合框“选择:“中选择“空”。phpMyAdmin会问你“你真的想执行下面的查询吗?"。在回答是之前,取消选中选项“启用外键检查”。