資料庫表新增新字段 支援重複執行

2022-07-01 17:21:10 字數 3680 閱讀 7837

oracle

declare 

colexist number;

begin

select count(

1) into colexist from user_tab_columns where table_name=upper('

history

') and column_name=upper('

name

');--判斷列是否存在

if colexist = 0 then --如果不存在,進行建立

execute immediate

'alter table history add name varchar(64) default (

''''

) not null';

end if ;

end;

/

或者

create

orreplace

procedure

col_v1

( tbname

invarchar

, colname

invarchar

, coltype

invarchar)as

colexist

number(4

);begin

select

count(1) into colexist from user_tab_columns where table_name=

upper(tbname) and column_name=

upper(colname);--

判斷列是否存在

if colexist =

0then

insert

into c_test (id) values (1

);

execute

immediate

'alter table

'||tbname||

'add

'||colname||''

||coltype;

endif

;

commit

;end;/

call col_v1(

'c_test

','tppid2

','number(4) default 0 not null

');

mysql資料庫表增加字段

delimiter ;;

drop procedure if exists columnadd;

create procedure `columnadd`(tbname varchar(30),colname varchar(32),coltype varchar(64

))begin

declare p_str varchar(

300);

if not exists (select * from information_schema.columns where table_schema=database() and table_name = tbname and column_name =colname) then -- 判斷列是否存在

set p_str= concat('

alter table

',tbname,'

add

',colname ,'

',coltype);

set @sql =p_str;

prepare stmt from @sql;

execute stmt;

deallocate prepare stmt;

end if;

end;;

delimiter ;

-- 呼叫該儲存過程

call columnadd(

'lf_wcd_p1

','wcd_urlp1

','varchar(64) not null default

'''''

);

mysql資料庫表刪除字段

delimiter ;;

drop procedure if exists columndel;

create procedure `columndel`(tbname varchar(30),colname varchar(32

))begin

declare p_str varchar(

300);

if not exists (select * from information_schema.columns where table_schema=database() and table_name = tbname and column_name =colname) then

set p_str= concat('

alter table

',tbname,'

drop column

',colname ,'

',coltype);

set @sql =p_str;

prepare stmt from @sql;

execute stmt;

deallocate prepare stmt;

end if;

end;;

delimiter ;

-- 呼叫該儲存過程

call columnadd('lf_wcd_p1','wcd_urlp1');

sqlserver資料庫新增字段

if

exists ( select

*from sys.objects where type='p

'and name=

'columnadd')

begin

drop

procedure

[columnadd

]end

gocreate

procedure

columnadd

(@tbname

varchar(15

),@colname

varchar(32

),@coltype

varchar(64))

asbegin

--declare @currentdatabase varchar(100)

declare

@p_str

varchar(300

)

--set @currentdatabase = select db_name()

ifcol_length(@tbname, @colname) is

null

set@p_str='

alter table '+

@tbname+'

add '+

@colname+'

'+@coltype

exec(@p_str

)end

goexec columnadd '

lf_mttask

','finishtime

','datetime not null default getdate()

'go

關於yii 資料庫新增新字段之後model類的修改

rules array 新字段 safe on search 1 array 新字段 safe 這個如果是要使用者輸入的話,要加一下,2 array 新字段 numerical 如果是數字的話 3 array 新字段 length max 100 如果是文字 1 2 3適當的最少要加一條,新字段才會...

FMDB 資料遷移即資料庫增加新字段

最近公司需要新專案,需要資料持久化 使用的是fmdb操作sqlite,在正常使用過程中沒有什麼毛病的,但是如果一旦需求改了 需要增加欄位的時候就必須要重新寫 或者使用者重新解除安裝安裝,這就會造成使用者資料丟失。剛開始預定方案是判斷版本號之後,對於原先資料庫裡面的資料讀出來然後新增欄位的資料進行寫入...

資料庫 新增字段語句

本文由 書畫 軟體 整理發布 內容與本軟體無關更愜意的讀 更舒心的寫 更輕鬆的發布 通用式 alter table 表名 add 欄位名 字段屬性 default 預設值 default 是可選引數 例項 alter table 班級表2 add column 小組 int 0以下例子可能確實col...