Oracle增加字段,如果字段存在则删除后重新添加的sql语句怎么写
时间: 2023-07-20 11:38:23 浏览: 173
可以使用以下 SQL 语句来增加字段,如果字段已经存在,则先删除字段,然后再重新添加:
```
ALTER TABLE table_name
ADD (column_name data_type [DEFAULT expr] [column_constraint],
column_name2 data_type [DEFAULT expr] [column_constraint],
...);
-- 如果字段已经存在,则删除字段
-- 注意:必须使用双引号引用字段名
BEGIN
EXECUTE IMMEDIATE 'ALTER TABLE table_name DROP COLUMN "column_name"';
EXCEPTION
WHEN OTHERS THEN
IF SQLCODE != -904 THEN
RAISE;
END IF;
END;
-- 然后重新添加字段
ALTER TABLE table_name
ADD (column_name data_type [DEFAULT expr] [column_constraint]);
```
其中,`table_name` 是要修改的表名,`column_name` 是要添加或删除的字段名,`data_type` 是字段的数据类型,`DEFAULT expr` 是字段的默认值,`column_constraint` 是列约束。
在删除字段时,我们使用了 `EXECUTE IMMEDIATE` 语句来执行动态 SQL,以便可以动态构建 SQL 语句并执行。如果删除字段时发生异常,我们使用 `EXCEPTION` 来捕获异常,然后判断异常代码是否为 -904(即字段不存在),如果不是,则重新抛出异常。如果字段不存在,则不会触发异常,可以继续执行后面的代码。
阅读全文