清空表应该怎么写 SQL

清空表应该怎么写 SQL,第1张

清空所有数据: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 怎样清空一个数据库中的所有表等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/10158037.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存