如何删除数据库中一系列表的数据

如何删除数据库中一系列表的数据,第1张

有两种办法可以删除表中的所有数据

1、TRUNCATE TABLE 删除表中的所有行,而不记录单个行删除 *** 作。

语法 TRUNCATE TABLE name

参数 name 是要截断的表的名称或要删除其全部行的表的名称。

2、Delete from tablename where 1=1

编写一段程序,首先读取数据库中的所有表

select name from sysobjects where type='U'

然后读一个,删一个,truncate table + 表名

方法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;

首先,需要知道临时表都叫什么名字或者有什么特征,比如都是以temp开头的表是临时表。

可用如下语句:

select 'TRUNCATE TABLE '||TABLE_NAME||';' from tabs where table_name like 'TEMP%';

此时,结果中会生成一组语句,复制粘贴。如图:

将复制出来的语句,全选,并执行,即可。

要删除所有的用户表:

declare @sql varchar(8000)

SELECT @sql='drop table ' + name

FROM sysobjects

WHERE (type = 'U')

ORDER BY 'drop table ' + name

exec(@sql)

如果要删除所有用户表中的内容,可以执行以下语句:

declare @sql varchar(8000)

SELECT @sql='truncate table ' + name

FROM sysobjects

WHERE (type = 'U')

ORDER BY 'truncate table ' + name

exec(@sql)

慎用!

创建个存储过程来执行啦

在plsql中把以下代码复制粘贴,并运行

create or replace PROCEDURE SP_DROPTABLE

(v_begintime in varchar2,

v_endtime in varchar2)

as

v_tablename varchar2(256);

cursor cur_tablename is

select object_name from user_objects where object_type='TABLE' and to_char(CREATED,'yyyy-mm-dd')

between v_begintime

and v_endtime order by CREATED desc;

begin

open cur_tablename;

loop

fetch cur_tablename into v_tablename;

exit when cur_tablename%notfound;

execute immediate 'drop table '||v_tablename||'';

end loop;

close cur_tablename;

end sp_droptable;

然后,另开一个sql窗口,执行

 begin

SP_DROPTABLE('1900-01-01','2013-12-31');

end;

如有问题,请查看浏览器右上角处

以上就是关于如何删除数据库中一系列表的数据全部的内容,包括:如何删除数据库中一系列表的数据、如何清空SQL2000数据库中所有表里的所有数据、mysql保留数据库清空所有表的命令是什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

    保存