国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > MySQL > 正文

如何在mysql5.0中創(chuàng)建存儲過程

2024-07-24 13:00:45
字體:
供稿:網(wǎng)友

mysql5.0 DB 中創(chuàng)建存儲過程與其他DB (oracle,sql server等)有一些語法不同,由于mysql 解析器 一遇到“;”分號時,就開始結(jié)束命令的執(zhí)行。

如創(chuàng)建一個student表

CREATE TABLE student
(
   stu_id INT(5) NOT NULL AUTO_INCREMENT PRIMARY KEY,
   stu_name VARCHAR(15) NOT NULL,
   age VARCHAR(3) NOT NULL
);

為該表創(chuàng)建一個存儲過程

CREATE PROCEDURE addStudent()
BEGIN
         INSERT INTO student (stu_name, age) VALUES ('22', '2');
END;

提示以下錯誤:

MySQL 返回:
#1064 - You have an error in your SQL syntax;
check the manual that corresponds to your MySQL server version for the
right syntax to use near 'insert into student (stu_name,age) values ('22','3')' at line 3

錯誤分析:按mysql的語法,以上分別創(chuàng)建存儲過程和插入數(shù)據(jù)都沒錯,那為什么會報出syntax 錯誤呢?那是因為mysql 解析器的工作原理,當(dāng)你執(zhí)行以上腳本時,mysql 解析器解析到了insert into后遇到“;”分號,故就結(jié)束了本次執(zhí)行,也就是說它還沒執(zhí)行到end,為終止了,所以有報語法錯誤。

解決方法:

使用DELIMITER關(guān)鍵字申明當(dāng)前段分隔符,如下

DELIMITER // --     表示申明開始
create procedure addStudent ()
begin
insert into student (stu_name,age) values ('28','3');
end
//    --申明結(jié)束

調(diào)用存儲過程命令為:

delimiter ;
call addStudent()

就這樣可以完美地實現(xiàn)了存儲過程的創(chuàng)建

以下是使用存儲過程為student表插入10000條記錄

DELIMITER //
create procedure add4 ()
begin
DECLARE num int; --申明變量
SET num = 0 ;--給變量賦值
while(num < 100) do
insert into student (stu_name,age) values ('kevin','23');
set num = num + 1 ;
end while ;
end
//

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 滨州市| 千阳县| 阿荣旗| 泉州市| 沙湾县| 龙海市| 犍为县| 南召县| 南漳县| 达拉特旗| 枣阳市| 东阿县| 姜堰市| 郑州市| 永春县| 达尔| 永和县| 武冈市| 凤山市| 襄城县| 菏泽市| 微博| 白玉县| 阿克苏市| 临沂市| 洛宁县| 察隅县| 赤峰市| 肇东市| 平山县| 九江县| 房产| 涡阳县| 宝丰县| 湟中县| 永城市| 榆林市| 安国市| 江都市| 庄河市| 象山县|