oracle语法中没有mysql语法中的drop table table_name if exists 这种形式,但是我们可以曲线救国,使用orale的存储过程实现同样的效果,下面给出具体做法:
create or replace procedure proc_dropifexists(
p_table in varchar2
) is
v_count number(10);
begin
select count(*)
into v_count
from user_objects
where object_name = upper(p_table);
if v_count > 0 then
execute immediate 'drop table ' || p_table ||' cascade constraints';
end if;
end;
/
--调用
exec proc_dropifexists('mytable'); ......
分享到:
相关推荐
MySQL的: drop table if exists 表名; SQL Server的: IF EXISTS (SELECT name FROM sysobjects WHERE name = '表名' AND type = 'U') DROP TABLE 表名; Oracle的: create or replace table 表名 ...; -- 直接写...
在Oracle中若删除一个不存在的表,如 “DROP TABLE tableName”,则会提示: ORA-00942:表或视图不存在 若在程序中执行该语句则会报异常,这就需要我们在删除表前先判断该表是否存在,若存在则删除. DECLARE num NUMBER;...
"oracle-use.rar_Oracle drop use_oracle"这个压缩包包含了与Oracle数据库使用相关的多个文档,包括查询、操作、PL/SQL语法、数据导入导出、连接配置以及备份恢复等方面的知识。 首先,我们来关注"插入数据"这一...
Oracle数据库系统中,`DROP TABLE`命令没有`IF EXISTS`选项。这意味着如果你尝试删除一个不存在的表,将会引发一个错误。为了避免这个错误,你需要使用PL/SQL的异常处理。下面的代码块展示了如何在Oracle中安全地...
删除数据表的命令是`DROP TABLE`,如果想确保表存在才删除,可以使用`DROP TABLE IF EXISTS`。例如,删除名为demo01的表可以写为`DROP TABLE IF EXISTS demo01;`。 总的来说,MySQL的学习涵盖了数据库的基本概念、...
项目应用中,曾有以下一个场景: 接口中要求发送一个int类型的流水号,由于多线程模式,如果用时间戳,可能会有重复的情况...DROP TABLE IF EXISTS sequence; CREATE TABLE sequence ( name VARCHAR(50) NOT NULL,
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'dbo.function_name') AND type in (N'FN', N'IF', N'TF')) DROP FUNCTION dbo.function_name; GO CREATE FUNCTION dbo.function_name (@p...
DROP TABLE IF EXISTS table_name; CREATE TABLE table_name (column_definition,...); ``` - **SQL Server**: ```sql IF EXISTS (SELECT name FROM sysobjects WHERE name = 'table_name' AND type = 'U') ...
7. EXISTS子句用于判断子查询返回的记录是否存在,适用于查询条件涉及其他表的情况。 8. 表连接查询包括INNER JOIN(内连接)、LEFT JOIN(左连接)、RIGHT JOIN(右连接)和FULL JOIN(全连接),JOIN ON用于连接...
前言 最近同事发现了一个问题,在12c中跑的buffer get很高,但是在10g中跑的buffer很低。...drop table t1; drop table t2; create table t1 (id number,name varchar2(20),dep_id varchar2(10)); create table t
DROP TABLE IF EXISTS `sequence`; CREATE TABLE `sequence` ( `name` varchar(50) CHARACTER SET utf8 COLLATE utf8_croatian_ci NOT NULL, `current_value` int(11) NOT NULL, `increment` int(11) NOT NULL ...
DROP TABLE IF EXISTS `sys_area`; CREATE TABLE `sys_area` ( `code` varchar(20) NOT NULL default '' COMMENT '行政区划编码', `parent_code` varchar(20) default NULL COMMENT '父级行政区划编码', `name` ...
DELETE FROM table_name t1 WHERE EXISTS (SELECT 1 FROM table_name t2 WHERE t1.column_name = t2.column_name AND t1.ROWID > t2.ROWID); ``` - **RENAME关键字**:`RENAME`关键字用于重命名表或列。 ```sql ...
- **删除表**:`DROP TABLE table_name;` 2. **数据控制语言(DCL)** - **授予权限**:`GRANT privilege TO user;` (如:`GRANT CREATE ANY VIEW TO user;`) - **撤销权限**:`REVOKE privilege FROM user;` ...
3. 表的创建与管理:学习如何使用CREATE TABLE语句定义表结构,以及ALTER TABLE和DROP TABLE语句对表进行修改和删除。 4. 数据类型:了解Oracle支持的各种数据类型,如NUMBER、VARCHAR2、DATE等,以及它们在实际...
- **删除数据库**:`DROP DATABASE [IF EXISTS] database_name;` ### 五、数据库操作示例 创建数据库的示例: ```sql CREATE DATABASE mydb1; ``` 带有`IF NOT EXISTS`条件的创建数据库示例: ```sql CREATE ...
1. 数据定义:CREATE TABLE用于创建表,ALTER TABLE修改表结构,DROP TABLE删除表。 2. 数据操纵:INSERT插入数据,UPDATE更新数据,DELETE删除数据,SELECT查询数据。 3. 数据控制:GRANT和REVOKE分别用于授予和...
IF EXISTS(SELECT * FROM sys.sysobjects WHERE name = 'Tr_Delete') DROP TRIGGER Tr_Delete; GO CREATE TRIGGER Tr_Delete ON BookInfo INSTEAD OF DELETE AS BEGIN DECLARE @BookId INT; SELECT @BookId...