drop
procedure
ifexists tryaddtable;
delimiter
//create
procedure tryaddtable (
in tablename varchar(20
),in createtablesql varchar
(1000))
begin
declare tablecount int
;select
count(*
)into tablecount from information_schema.
tables
where table_name = tablename;
if(tablecount =0)
then
-- @表示全域性變數 相當於php $ 拼接賦值 into 必須要用全域性變數不然語句會報錯
set@create_sql
= createtablesql;
-- 預處理需要執行的動態sql,其中stmt是乙個變數
prepare stmt from
@create_sql
;-- 執行sql語句
execute stmt;
-- 釋放掉預處理段
deallocate
prepare stmt;
endif
;end
//delimiter
;call tryaddtable(
'person'
,'create table person (
person_id int not null primary key,
fname varchar(40) null,
lname varchar(40) null,
created timestamp
);')
;select
*from person;
drop
procedure
ifexists tryaddtabcolumn;
delimiter
//create
procedure tryaddtabcolumn (
in tablename varchar(50
),in colname varchar(20
),in coltype varchar(20
))begin
declare colcount int
;select
count(*
)into colcount from information_schema.
columns
where table_name = tablename and column_name = colname;
if(colcount =1)
then
-- @表示全域性變數 相當於php $ 拼接賦值 into 必須要用全域性變數不然語句會報錯
set@drop_sql
= concat(
'alter table '
,tablename,
' drop column '
,colname,
';')
;-- 預處理需要執行的動態sql,其中stmt是乙個變數
prepare stmt from
@drop_sql
;-- 執行sql語句
execute stmt;
-- 釋放掉預處理段
deallocate
prepare stmt;
endif
;-- @表示全域性變數 相當於php $ 拼接賦值 into 必須要用全域性變數不然語句會報錯
set@add_sql
= concat(
'alter table '
,tablename,
' add column '
,colname,
' ',coltype,
';')
;-- 預處理需要執行的動態sql,其中stmt是乙個變數
prepare stmt from
@add_sql
;-- 執行sql語句
execute stmt;
-- 釋放掉預處理段
deallocate
prepare stmt;
end//
delimiter
;call tryaddtabcolumn(
'person'
,'fname'
,'varchar(20)');
call tryaddtabcolumn(
'person'
,'updated'
,'timestamp');
show
create
table person;
Mysql儲存過程案例
刪除drop procedure if exists p house set premit 建立獲取房間最低 和統計房間數儲存過程 delimiter create definer dev stand admin procedure p house set premit in in house in...
mysql定義過程 定義MySql儲存過程
建立乙個不帶返回值的儲存過程 delimiter drop procedure if exists proc name create procedureproc name in num1 int,in num2 int begin set a 2000000001 set d 20000001 se...
MySQL,儲存過程簡單案例
本篇文章未完待續中.1 下面的案例包含 mysql資料中儲存過程的建立 儲存過程的刪除 執行儲存過程。需要說明的是,儲存過程建立成功後,需要 執行儲存過程 才可對資料庫表中的相關資料進行crud操作。建立儲存過程 create procedure proc tab resource age begi...