为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:dm8
【操作系统】:centos7
【CPU】:x86
【问题描述】*:项目开发过程中,经常会随着需求的新增或者变更,需要新增表或者修改表中的字段,达梦是否支持通过编写脚本或者存储过程,来达到升级数据库表结构的目的?
比如类似于mysql的创建存储过程,存储过程是所有建表的语句,和判断表或者字段是否存在的语句。每次有新表,或者有字段发生变化,只需要将新增的表和修改的字段,更新到存储过程后,重新执行一次存储过程,即可升级成最新的数据表结构。
IF NOT EXISTS (SELECT 1 FROM user_tables WHERE table_name = 'test')
BEGIN
CREATE TABLE test (
id int NOT NULL ,
name varchar2 NOT NULL default ''
);
END
这我自己写的,可以参考下
declare
x varchar;
v_sql varchar;
begin
select count(1) into x from all_tables where table_name ='cunzai';
if x !=1 then
v_sql := 'create table cunzai(id bigint not null, name varchar);';
EXECUTE IMMEDIATE v_sql;
end if;
end;
--写成存储过程可以是下面这样
create or replace procedure CUNZAI(v_tab in varchar)
is
x varchar;
v_sql varchar;
begin
select count(1) into x from all_tables where table_name = v_tab;
if x !=1 then
v_sql := 'create table '||v_tab||'(id bigint not null, name varchar);';
EXECUTE IMMEDIATE v_sql;
end if;
end;