存儲過程編寫mysql
1、delimiter // ,聲明分隔符:DELIMITER是分割符的意思,因為MySQL默認以";"為分隔符,如果我們沒有聲明分割符,那麼編譯器會把存儲過程當成SQL語句進行處理,則存儲過程的編譯過程會報錯,所以要事先用DELIMITER關鍵字申明當前段分隔符,這樣MySQL才會將";"當做存儲過程中的代碼,不會執行這些代碼(這里如果不懂的話,你可以通過試錯的方法來理解)。
2、編寫存儲過程的格式:CREATE PROCEDURE([[IN |OUT |INOUT ]參數名數據類形...])
例子:
1)create procere proc1(out s int) // 只有輸出
2)create procere proc2(in p_in bigint) // 只有輸入
3)create procere proc15() // 沒有輸入與輸出
4)create procere demo_multi_param(in id bigint,in name varchar(32),out c int) //多輸入與輸出
3、過程體的開始與結束使用BEGIN與END進行標識。
4、select count (*) into s from student; // 過程體,一系列的邏輯語句,sql語句
5、delimiter ; 用完了之後要把分隔符還原。
② mysql 怎麼寫存儲過程
create proc dbo 存儲過程的名稱 As
declare @aa varchar(200)
select @aa='1.0,2.0,3.6,3.5,4.5'
while charindex(',',@aa)>0
begin
insert into b表(欄位)
select LEFT(@aa,charindex(',',@aa)-1)
select @aa = RIGHT(@aa,len(@aa)-charindex(',',@aa))
end
③ mysql存儲過程的寫法。
使用MySQL編程和SQL Server基本思想是一致的,語法有較大的區別。SQL Server不管是條件、循環等區塊仍然要使用begin與end作為起始和結束的標識,而MySQL則直接用END something(如while,if,loop),當然,由於自己接觸MySQL並不長,沒有使用SQL Server那麼熟練,所以寫這些也是非常基礎的部分,而在實際問題中會千變萬化,所以還是需要更多的實踐來不斷提高。
④ mysql創建存儲過程
如下:
create procere pr_1()
select * from a;
⑤ mysql寫一個存儲過程
這個SQL存儲過程改寫成MYSQL如下:
CREATE PROCEDURE proc_login
(IN v_name VARCHAR(16),
IN v_psd VARCHAR(8),
OUT v_out INT)
BEGIN
DECLARE v_pass VARCHAR(8);
DECLARE v_num INT;
SELECT COUNT(*) INTO v_num FROM USER WHERE name=v_name;
IF v_num<>=0
SELECT pass INTO v_pass FROM user WHERE name=v_name;
IF v_pass=v_psd
SET v_out=9;
ELSE
SET v_out=1;
END IF;
ELSE
SET v_out=1;
END IF;
END;
希望能幫到你。
⑥ mysql的存儲過程怎麼寫
DELIMITER $$
USE `test`$$
DROP PROCEDURE IF EXISTS `proc_now_time`$$
CREATE DEFINER=`root`@`%` PROCEDURE `proc_now_time`(OUT `now_time` TEXT)
BEGIN
#Routine body goes here...
DECLARE
now_time TEXT;
select name ,age from test1,test2 INTO now_time;
SELECT now_time;
END$$
DELIMITER ;
⑦ 存儲過程寫法 mysql
語法格式如下:
DELIMITER //
CREATE PROCEDURE sp_name(p_1 INT)
BEGIN
...code goes here...
END //
DELIMITER ;