MYSQL儲存過程定義案例

2021-10-18 02:56:00 字數 2461 閱讀 4632

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...