mysql 分号 存储过程_MySql 存储过程
自動增長列、字段值唯一性約束
create table aa(
id int auto_increment primary key,
sname varchar(32) unique
);
insert into aa values(5,'abc');
創建一個自動增長的id屬性(最開始不設置就從0開始增長)
(后面的id如果有值了,如果添加數據時沒有設置id,MySQL就會用最大的id加1做為最新的id)
注意:auto_increment 在MySQL中支持,其他的數據庫設置自動增長列中關鍵字不一樣。
unique 對sname進行唯一性約束,也就是不能有相同的sname(可以有一個值是null)。
存儲過程:
其實這個SQL中的存儲過程很像Java中的定義函數,調用函數。
首先看定義:
create procedure 過程名(參數...)
begin
SQL語句...
end
調用:
call 過程名(實參)
有一個需要注意的地方:
在定義前,需要先把默認的語句結束’;’號改成其它,如’&&’,這樣存儲過程中定義的分號就不會被看成是語句結束(否則會直接被提交)。
在定義完之后,還要把’;’還原成默認的結束符。
實例一:無參的存儲過程
delimiter &&
create procedure p1()
begin
insert into stud values('P100','小李',43);
select * from stud;
end&&
delimiter ;
call p1;/*調用p1()中的SQL語句,如果沒有call之前,p1()中的SQL語句是沒有被執行的*/
實例二:有參的存儲過程
delimiter &&
create procedure p2(in id varchar(32),in sname varchar(32),in age int)
begin
insert into stud values(id,sname,age);
select * from stud;
end &&
delimiter ;
call p2('P1007','小白',25);
call p2('P1008','小麗',28);
實例三:有返回值的存儲過程
delimiter &&
create procedure p3(in id varchar(32) ,in sname varchar(32),in age int ,out num int)
begin
insert into stud values(id,sname,age);
select * from stud;
select count(*) into num from stud;
end&&
delimiter ;
call p3('P012','小小五',27, @num);
/*調用且用num接收結果*/
select @num; /*顯示用戶變量num*/
系統變量名稱:@@變量名
用戶變量名稱:@變量名
總結
以上是生活随笔為你收集整理的mysql 分号 存储过程_MySql 存储过程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ad 卡尔曼_卡尔曼滤波剪影__Kalm
- 下一篇: php连接mysql页面空白_求大神: