MYSQL:如何清空表中的数据(⼀张表和多张表)
⽅法1:delete from 表名;
⽅法2:truncate table 表名;padding取值
css按钮事件⽐ 较:
1> truncate 是整体删除 (速度较快),delete是逐条删除 (速度较慢)
2> truncate 不写服务器 log,delete 写服务器 log,也就是 truncate 效率⽐ delete⾼的原因
3> truncate 不激活trigger (触发器),但是会重置Identity (标识列、⾃增字段),相当于⾃增列会被置为初始值,⼜重新从1开始记录,⽽不是接着原来的 ID数。⽽ delete 删除以后,identity 依旧是接着被删除的最近的那⼀条记录ID加1后进⾏记录。如果只需删除表中的部分记录,只能使⽤ DELETE语句配合 where条件
那么问题来了,如果某⼀个数据库中有很多张表,此时我想将该数据库中所有表中的数据全部删掉,该如何操作呢?
解决该问题主要分两种情况,如果不需要保留数据库中所有表的结构,那么答案很简单,执⾏命令drop database 数据库名 即可达到⽬的。但是如果需要保留该数据库中所有表的结构,只想删除所有表中的数据,⼜该怎么解决呢?有⼈会说可以多执⾏⼏次truncate操作就OK啦,没错,多执⾏⼏次truncate确实可以达到⽬的,但是,如果要删除的数据库中有很多张表,⼏⼗张上百张表,执⾏上百次truncate操作显然不是好的办法?⾄此,就是本⽂要说讲到的办法了。
删除的办法其实还是执⾏truncat⽅法,只是不需要每次⼿动的输⼊truncate命令进⾏删除。通过sql命令的⽅式⽣成所有的truncate 语句并写⼊到.sql脚本⽂件中,然后执⾏脚本即可完成删除操作,并且保留了表结构。
⽣成truncate命令的sql语句为:SELECT CONCAT('TRUNCATE TABLE ',TABLE_NAME,';') FROM
asset翻译ubuntu java环境配置information_schema.TABLES WHERE TABLE_SCHEMA='test' into outfile '/tmp/truncate_test.sql';
phpstudy怎么安装更多php版本然后将⽣成的.sql脚本拷贝到当前⽂件夹下⾯:mv /tmp/truncate_test.sql $current_dir/
然后执⾏.sql脚本将数据库中所有表中数据删除:source $current_dir/truncate_test.sql
说明:
在进⾏操作时,会遇到报错的情况: MySQL server is running with the --secure-file-priv option so it cannot execute this statement,这个原因其实很简单,是因为在安装MySQL的时候限制了导⼊与导出的⽬录权限,只能在规定的⽬录下才能导⼊我们需要通过下⾯命令查看 secure-file-priv 当前的值是什么
show variables like '%secure%';我们可以看到value的值为
那么我们把导⼊的路径改为上⾯的值就可以了
=
打开⽂件:mysql语句多表查询
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论