
清空所有数据:Truncate Table stu或者Delete stu。
清空第10条以后数据:Delete From Stu Where id Not In、
Select Top 10 id From stu Order By id。
数据库清空表使用delete和truncate语句,但这两个命令语句是有区别的:
首先区别在于,delete是数据库 *** 作语句而非命令语句,直接清空的是数据,能够触发触发器等 *** 作。而truncate是命令语句,不会触发触发器等 *** 作,但不能回滚。truncate语句是直接提交的数据库的,而delete是DML语句。delete还会保留数据库的高水线。打个比方,你就能知道最简单的区别。比如你的表中有一个自增长的ID,truncate之后,ID会重新开始编码,但delete会接着你删除的最大值进行编码。语法上 delete可以带where条件,删除指定数据,但truncate是不能的,只能全部清空表。
下面写一下两个语句清空表的语法:delete table、truncate table。
清空单表可以truncate
清空某个库下的所有表时,可以考虑导出这张表,以导出表结构的方式,把该库下所有的表结构导出来,再删库,导回去就好了
mysqldump -d 参数是只导结构,不导数据的
方法1:重建库和表
一。只导出表结构
导出整个数据库结构(不包含数据)
mysqldump -h localhost -uroot -p123456 -d database > dumpsql
导出单个数据表结构(不包含数据)
mysqldump -h localhost -uroot -p123456 -d database table > dumpsql
二。只导出表数据
导出整个数据库数据
mysqldump -h localhost -uroot -p123456 -t database > dumpsql
三。导出结构+数据
导出整个数据库结构和数据
mysqldump -h localhost -uroot -p123456 database > dumpsql
导出单个数据表结构和数据
mysqldump -h localhost -uroot -p123456 database table > dumpsql
方法2:生成清空所有表的SQL
mysql -N -s information_schema -e "SELECT CONCAT('TRUNCATE TABLE ',TABLE_NAME,';') FROM TABLES WHERE TABLE_SCHEMA='eab12'"
输出结果如下:
TRUNCATE TABLE AUTHGROUPBINDINGS;
TRUNCATE TABLE AUTHGROUPS;
TRUNCATE TABLE AUTHUSERS;
TRUNCATE TABLE CORPBADCUSTOMINFO;
TRUNCATE TABLE CORPSMSBLACKLISYInfo;
TRUNCATE TABLE CORPSMSFILTERINFO;
TRUNCATE TABLE CORPSMSINFO;
TRUNCATE TABLE EABASEREGINFOS;
TRUNCATE TABLE EACORPBLOB;
TRUNCATE TABLE EACORPINFO;
这样就更完善了:
mysql -N -s information_schema -e "SELECT CONCAT('TRUNCATE TABLE ',TABLE_NAME,';') FROM TABLES WHERE TABLE_SCHEMA='eab12'" | mysql eab12
即清空eab12中所有的表。
但是如果有外键的话,很可能会报错。因此还需要加个-f
mysql -N -s information_schema -e "SELECT CONCAT('TRUNCATE TABLE ',TABLE_NAME,';') FROM TABLES WHERE TABLE_SCHEMA='eab12'" | mysql -f eab12
多执行几次,直到不报错。
以上就是Mysql清空表的实现方法。
有两种办法可以删除表中的所有数据:
TRUNCATE TABLE 删除表中的所有行,而不记录单个行删除 *** 作。;语法 TRUNCATE TABLE name 参数 name 是要截断的表的名称或要删除其全部行的表的名称。
Delete from tablename where 1=1
方法1:重建库和表:
一、只导出表结构:
导出整个数据库结构(不包含数据):mysqldump -h localhost -uroot -p123456 -d database > dumpsql
导出单个数据表结构(不包含数据):mysqldump -h localhost -uroot -p123456 -d database table > dumpsql
二、只导出表数据:
导出整个数据库数据:mysqldump -h localhost -uroot -p123456 -t database > dumpsql
三、导出结构+数据
导出整个数据库结构和数据:mysqldump -h localhost -uroot -p123456 database > dumpsql
导出单个数据表结构和数据:mysqldump -h localhost -uroot -p123456 database table > dumpsql
可不敢乱来,从你打开的这个开,你看到的应该是系统库的表和视图之类的,你删了这些你数据库就别想用了;如果是新建数据库用户的话,里面默认好像是没什么表的,如果你是使用SQL文件建的,你只需要把这个数据库用户删掉,拷贝里面的建库的那个语句考出来执行下即可,建立的就是一个空的数据库
1、可以看到向mysql数据库表中新增一条记录,id为59818,可是明明只有一条记录。
2、可以通过“truncate table 表名”方式重置清空id,让id从1开始自动递增。
3、运行“truncate table crew_test”语句,进行重置清空crew_test表id。
4、再次打开crew_test表,新增两条记录,可以看到id从1开始递增。
5、如果想避免id间隔的问题,可以不设置id为自动递增,设计表之后,将id字段的自动递增取消。
6、将id设置为字符类型,然后通过程序随机生成不重复的字符串,新增数据的时候给id赋值。
以上就是关于清空表应该怎么写 SQL全部的内容,包括:清空表应该怎么写 SQL、mysql怎样清空一个数据库中的所有表、mysql 怎样清空一个数据库中的所有表等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)