begin
創(chuàng)新新互聯(lián),憑借10余年的網(wǎng)站制作、網(wǎng)站建設(shè)經(jīng)驗,本著真心·誠心服務(wù)的企業(yè)理念服務(wù)于成都中小企業(yè)設(shè)計網(wǎng)站有1000+案例。做網(wǎng)站建設(shè),選創(chuàng)新互聯(lián)公司。
declare i int;
declare b int;
declare c int;
set @i=2;
set @b=6;
set @c=0;
set @stmt = concat('insert into t_j_goods_name (id,`code`,`name`)
values(?,?,(select distinct `a` from sheet1 limit ?, 1))');
while @i442 do
prepare s1 from @stmt;
execute s1 using @b,@i,@c;
deallocate prepare s1;
set @i=@i+1,@b=@b+1,@c=@c+1;
end while;
end
這是我今天剛寫的一個存儲,你參考下。
mysql的游標是不能放到循環(huán)中創(chuàng)建的。你想要實現(xiàn)你原有功能的話,可以把第二個游標定義到另外一個存儲過程中,然后在創(chuàng)建第二個游標的地方改成調(diào)用新建的存儲過程(CALL PROC_NAME()),并且把你循環(huán)第二個游標想做的事也放到新建的存儲過程里面去,就ok了
修改表 - 修改列的數(shù)據(jù)類型
使用 CHANGE COLUMN 來修改列的數(shù)據(jù)類型,還必須 設(shè)置 列名。
使用 MODIFY COLUMN 不用輸入2次列名。
mysql?ALTER?TABLE?test_tab
-???CHANGE?COLUMN?age?age?TINYINT;
-?//
Query?OK,?0?rows?affected?(0.16?sec)
Records:?0??Duplicates:?0??Warnings:?0
mysql?ALTER?TABLE?test_tab
-???MODIFY?COLUMN?age?BIGINT?NOT?NULL;
-?//
Query?OK,?0?rows?affected?(0.14?sec)
Records:?0??Duplicates:?0??Warnings:?0
修改表 - 修改列的默認值
通過MODIFY?COLUMN來處理?
mysql?ALTER?TABLE?test_tab
-???MODIFY?COLUMN?sex??VARCHAR(2)?DEFAULT?'男';
Query?OK,?0?rows?affected?(0.06?sec)
Records:?0??Duplicates:?0??Warnings:?0
修改表 - 修改列名
使用?CHANGE?COLUMN?來修改列的名字,還必須?設(shè)置?列的數(shù)據(jù)類型?
mysql?desc?test_tab
-?//
+-------+-------------+------+-----+---------+-------+
|?Field?|?Type????????|?Null?|?Key?|?Default?|?Extra?|
+-------+-------------+------+-----+---------+-------+
|?id????|?int(11)?????|?NO???|?PRI?|?0???????|???????|
|?name??|?varchar(10)?|?YES??|?????|?NULL????|???????|
|?age???|?int(11)?????|?YES??|?????|?NULL????|???????|
|?val???|?varchar(10)?|?YES??|?????|?NULL????|???????|
+-------+-------------+------+-----+---------+-------+
4?rows?in?set?(0.00?sec)
mysql?ALTER?TABLE?test_tab
-???CHANGE?COLUMN?val?val2?VARCHAR(10);?//
Query?OK,?0?rows?affected?(0.13?sec)
Records:?0??Duplicates:?0??Warnings:?0
mysql?desc?test_tab
-?//
+-------+-------------+------+-----+---------+-------+
|?Field?|?Type????????|?Null?|?Key?|?Default?|?Extra?|
+-------+-------------+------+-----+---------+-------+
|?id????|?int(11)?????|?NO???|?PRI?|?0???????|???????|
|?name??|?varchar(10)?|?YES??|?????|?NULL????|???????|
|?age???|?int(11)?????|?YES??|?????|?NULL????|???????|
|?val2??|?varchar(10)?|?YES??|?????|?NULL????|???????|
+-------+-------------+------+-----+---------+-------+
4?rows?in?set?(0.02?sec)
mysql
DECLARE var_name[,...] type [DEFAULT value]
這個語句被用來聲明局部變量。
要給變量提供一個默認值,請包含一個DEFAULT子句。
值可以被指定為一個表達式,不需要為一個常數(shù)。
如果沒有DEFAULT子句,初始值為NULL。
局部變量的作用范圍在它被聲明的BEGIN ... END塊內(nèi)。
它可以被用在嵌套的塊中,除了那些用相同名字聲明變量的塊。
CREATE TEMPORARY TABLE tmp_table (
name VARCHAR(10) NOT NULL,
value INTEGER NOT NULL
)
類似如上?;蛘撸?/p>
CREATE TEMPORARY TABLE tmp_table SELECT * FROM tables
---
以上,希望對你有所幫助。