下面是一個(gè)簡(jiǎn)單的 存儲(chǔ)過(guò)程的例子.
北侖ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來(lái)市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18982081108(備注:SSL證書合作)期待與您的合作!
DECLARE v_index INT;
定義一個(gè) 名稱為 v_index 的變量, 類型為 INT
MYSQL 變量定義應(yīng)該只能在 存儲(chǔ)過(guò)程, 函數(shù)里面定義.
不像 Oracle / SQL Server , 一個(gè) BEGIN / END 里面就可以定義/執(zhí)行了。
mysql DELIMITER //
mysql CREATE PROCEDURE TestWhile()
- BEGIN
- DECLARE v_index INT;
-
- SET v_index = 0;
-
- WHILE v_index 5 DO
- SET v_index = v_index + 1;
- SELECT v_index;
- END WHILE;
-
- END//
Query OK, 0 rows affected (0.00 sec)
不能定義為int型,應(yīng)該定義為timestamp型,這樣本身就默認(rèn)是當(dāng)前系統(tǒng)時(shí)間
打開電腦的終端窗口。
輸入mysql,uroot,p進(jìn)入mysql。用USE來(lái)切換數(shù)據(jù)庫(kù)。查看表格名字,以免重復(fù)。創(chuàng)建一個(gè)表格,這個(gè)我們?cè)O(shè)置name的默認(rèn)值為Peter,也就是固定值。
插入數(shù)據(jù)的時(shí)候固定值就不需要插入了。查看一下數(shù)據(jù)就能知道固定值自動(dòng)生成了。
在PHP、C++等語(yǔ)言里面可以使用變量,在存儲(chǔ)過(guò)程里面可以使用變量,SQL語(yǔ)句里面不能使用變量的。
不過(guò)你的要求可以用下面的一個(gè)SQL語(yǔ)句實(shí)現(xiàn):
insert into YYY表(字段1,字段2,字段3) SELECT 字段1,表達(dá)式2,常量3 FROM XXX表
注意:上面是兩個(gè)表,一般不允許同時(shí)對(duì)一個(gè)表進(jìn)行操作,如果是一個(gè)表,你可以考慮使用臨時(shí)表:
SELECT 字段1,表達(dá)式2,常量3 FROM XXX表 INTO TEMP TMP表;
insert into YYY表(字段1,字段2,字段3) SELECT * FROM TMP表;
MySQL數(shù)據(jù)庫(kù)TIMESTAMP設(shè)置默認(rèn)值的靈活運(yùn)用,本次我們接著上次的內(nèi)容介紹幾個(gè)MySQL數(shù)據(jù)庫(kù)TIMESTAMP設(shè)置默認(rèn)值的幾個(gè)應(yīng)用實(shí)例,希望能夠?qū)δ兴鶐椭?/p>
#1查看表定義,可以看到b列有個(gè)屬性O(shè)N UPDATE CURRENT_TIMESTAMP,導(dǎo)致更新數(shù)據(jù)時(shí),即便未涉及到該列,該列數(shù)據(jù)也被自動(dòng)更新。另一方面,c列默認(rèn)值是'0000-00-00 00:00:00',實(shí)際插入已經(jīng)被自動(dòng)賦值為current_timestamp。
MySQL存儲(chǔ)過(guò)程中,定義變量有兩種方式:
? 1、使用set或select直接賦值,變量名以@開頭,可以在一個(gè)會(huì)話(即連接)的任何地方聲明,作用域是整個(gè)會(huì)話,稱為用戶變量。例如:set @var=1;
? 2、 以declare關(guān)鍵字聲明的變量,只能在存儲(chǔ)過(guò)程中使用,稱為存儲(chǔ)過(guò)程變量,主要用在存儲(chǔ)過(guò)程中,或者是給存儲(chǔ)傳參數(shù)中。例如: declare var1 int default 0;
兩者的區(qū)別是:
? ? 在調(diào)用存儲(chǔ)過(guò)程時(shí),以declare聲明的變量都會(huì)被初始化為null。而會(huì)話變量(即@開頭的變量)則不會(huì)被再初始化,在一個(gè)會(huì)話(連接)內(nèi),只須初始化一次,之后在會(huì)話內(nèi)都是對(duì)上一次計(jì)算的結(jié)果,就相當(dāng)于在是這個(gè)會(huì)話內(nèi)的全局變量。