如何批量删除oracle数据库中表?

如何批量删除oracle数据库中表?,第1张

先写一个sql文件,比如叫del_tablessql,在sql文件里写DROP
TABLE的命令(DROP的内容根据你的需要,可以是单独的多个DROP
TABLE指令,也可能是从USER_TABLES里查询出若干表名),然后bat文件里写
sqlplus
用户名/密码@库名
@del_tablessql
如果sql文件的内容需要帮助写,那请你给出你要删除的表名,或者表名的规律,比如TEMP为开头的所有表。

删除所有表,可以删除数据
删除一个表的所有数据,可以使用delete

from
'table'
MySQL是一个关系型数据库管理系统,由瑞典
MySQL
AB
公司开发,目前属于
Oracle
旗下公司。MySQL
最流行的关系型数据库管理系统,在
WEB
应用方面
MySQL
是最好的
RDBMS
(Relational
Database
Management
System,关系数据库管理系统)
应用软件之一。

MYSQL数据库多余的数据表清理方法:
drop table命令用于删除数据表。
drop table命令格式:drop table <表名>;
例如,删除表名为 MyClass 的表:
mysql> drop table MyClass;
DROP TABLE用于删除一个或多个表。必须有每个表的DROP权限。所有的表数据和表定义会被取消,所以使用本语句要小心。

use 数据库名(是要删除表的所在的那个数据库的名称)\x0d\GO\x0d\declare @sql varchar(8000)\x0d\while (select count() from sysobjects where type='U')>0\x0d\begin\x0d\SELECT @sql='drop table ' + name\x0d\FROM sysobjects\x0d\WHERE (type = 'U')\x0d\ORDER BY 'drop table ' + name\x0d\exec(@sql) \x0d\end-----------------------------------------------use 数据库一定要填对哦

做个触发器去执行该类 *** 作
这样你把各个表名写清楚!我直接写好给你
create or replace trigger tr_Member_change
after delete
on Member
for each row
begin
if(deleting) then

delete from Book where Member_ID=:oldMember_ID;
delete from Complain where Member_ID=:oldMember_ID;
delete from Musiccollect where Member_ID=:oldMember_ID;
end if;
EXCEPTION
WHEN OTHERS THEN
begin
null;
end;
end tr_Member_change;
create or replace trigger tr_Musiccollect_change
after delete
on Musiccollect
for each row
begin
if(deleting) then

delete from Music where Music_ID=:oldMusic_ID;
end if;
EXCEPTION
WHEN OTHERS THEN
begin
null;
end;
end tr_Musiccollect_change;
做2次吧

工具/材料:Management Studio。

1、首先在桌面上,点击“Management Studio”图标。

2、之后在该界面中,点击左上角“新建查询”选项。

3、接着在该界面中,输入清空所有数据库中所有表里的所有数据的sql语句“delete from (select table_name from information_schematables where table_schema='test') ”。

4、然后在该界面中,点击左上方“执行”按钮。

5、最后在该界面中,显示清空所有数据库中所有表里的所有数据成功。

需要使用级联删除。

举例说明,如现在有三张表,学生Student,课程Course,成绩SC

1、学生表Student,主键是学号Sno

2、课程Course,主码是课程号Cno

3、成绩SC,主码是Sno和Cno,Sno外键约束是Student的Sno,Cno的外键约束是Cno

现在需要对Student或者Course进行修改或删除,希望在SC表中能保持修改或删除同步,这就需要到级联 *** 作!

方法一、SQL Server 2008 中手动设置“级联”

这个方法建议在建表时不要加入任何设置外键的代码,如果主码是两者或以上的就不适合使用

1  打开“数据库关系图”,若未创建,则创建

2  选中SC表,右击选中“关系”,展开“INSERT和UPDATE规范”中选择级联

3  Student表 和 Course 表也要同样的设置

方法二、建表时使用级联代码添加

IF EXISTS (SELECT  FROM dbosysobjects WHERE ID = OBJECT_ID(N'SC')
            AND OBJECTPROPERTY(ID, 'IsUserTable') = 1)
    DROP TABLE SC
Go
CREATE TABLE SC
(    Sno CHAR(10),
    Cno CHAR(10),
    Grade SMALLINT CHECK (Grade >= 0 AND Grade <= 100) NOT NULL,
    
    PRIMARY KEY (Sno, Cno),
    FOREIGN KEY (Sno) REFERENCES Student (Sno)
        ON UPDATE CASCADE
        ON DELETE CASCADE,
    FOREIGN KEY (Cno) REFERENCES Course (Cno)
        ON UPDATE CASCADE
        ON DELETE CASCADE);


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

原文地址: https://outofmemory.cn/yw/13345681.html

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

发表评论

登录后才能评论

评论列表(0条)

保存