create procedure mypro() begin declare i int default 0; declare pos int default 10002; while i<5 do insert into s(stu_num,stu_name,stu_address) values(pos,'xy','北京市'); set i = i+1; set pos = pos+1; end while; end; 下载了一本 施伯乐的 数据库教程,为什么书里没有讲解标准的存储过程的写法?那本书讲解标准的?
-- 问题1 create procedure pro1 as begin declare @i int set @i=1 while @i<=10 begin insert into table1(stu_num,stu_name) values(@i,'aaa'); set @i=@i+1 end end -- 问题2 create procedure pro2 as begin declare @i int set @i=1 while @i<=10 begin insert into table2(stu_num,stu_name) values(@i,'aaa'); set @i=@i+1 end end
很简单的while循环 试着写把
上面写的是SERVER SQL的,下面是MYSQL的 -- 问题1 create procedure pro1() as begin declare i int set i=1 while i<=10 do insert into table1(stu_num,stu_name) values(@i,'aaa'); set i=i+1 end while; end; -- 问题2 create procedure pro2() as begin declare i int set i=1 while i<=10 do begin insert into table2(stu_num,stu_name) values(i,'aaa'); set i=i+1 end while; end;
create procedure mypro() begin declare @i int ; declare @pos int; set @i = 0; set @pos = 10002; while @i<5 do begin insert into s(stu_num,stu_name,stu_address) values(@pos,'xy','北京市'); set @i = i+1; set @pos = @pos+1; end while; end为什么我这个不行?为什么 标准的存储过程 语法 没有书本讲解?
create procedure pro2() begin declare i int; set i=1; while i<=10 do insert into table2 (stu_num,stu_name) values (i,'aaa'); set i=i+1; end while; end;
create procedure mypro() begin declare i int declare pos int set i = 0 set pos = 10002 while i<5 do begin insert into s(stu_num,stu_name,stu_address) values(pos,'xy','北京市') set i = i+1 set pos = pos+1 end while end依旧不行,受不了, 难道存储过程没有标准语法???
create procedure mypro() begin declare i int ; declare pos int; set i = 0; set pos = 10002; while i<5 do insert into s(stu_num,stu_name,stu_address) values(pos,'xy','北京市'); set i = i+1; set pos = pos+1; end while; end;
create procedure mypro() as begin #declare i int declare pos int #set i = 0 set pos = 10002 while pos<10005 do begin insert into s(stu_num,stu_name,stu_address)values(pos,'xy','北京市') #set i = i+1 set pos = pos+1 end while end我把这个放sql脚本里,然后source 这个sql脚本,结果就一直报错真他妈受不了了
为什么放sql脚本里 ,source 后就不行?
为什么要source? 直接call mypro()
在source之前执行 mysql> delimiter //
你的法子有纰漏,没有考虑到windows路径带来的隐患。我的放在d:\test.sql;内容为: create procedure mypro1()begin declare i int declare pos int set i = 0; set pos = 10002; while pos<10005 do begin insert into s(stu_num,stu_name,stu_address)values(pos,'xy','北京市'); set i = i+1; set pos = pos+1; end while end 于是我在命令行下:delimiter // source d:/test.sql;结果提示打不开这个sql. 原因很可能就是delimiter //导致的。看错误提示:Failed to open file 'd:\test.sql;', error: 2于是我恢复成:delimiter ; source d:/test.sql; 结果又立即提示 sql中的语法有问题。
下面代码保存到d:\test.sql create procedure mypro1() begin declare i int ; declare pos int; set i = 0; set pos = 10002; while pos<10005 do insert into s(stu_num,stu_name,stu_address)values(pos,'xy','北京市'); set i = i+1; set pos = pos+1; end while; end;
create procedure mypro()
begin
declare i int default 0;
declare pos int default 10002;
while i<5 do
insert into s(stu_num,stu_name,stu_address) values(pos,'xy','北京市');
set i = i+1;
set pos = pos+1;
end while;
end;
下载了一本 施伯乐的 数据库教程,为什么书里没有讲解标准的存储过程的写法?那本书讲解标准的?
create procedure pro1
as
begin
declare @i int
set @i=1
while @i<=10
begin
insert into table1(stu_num,stu_name) values(@i,'aaa');
set @i=@i+1
end
end
-- 问题2
create procedure pro2
as
begin
declare @i int
set @i=1
while @i<=10
begin
insert into table2(stu_num,stu_name) values(@i,'aaa');
set @i=@i+1
end
end
-- 问题1
create procedure pro1()
as
begin
declare i int
set i=1
while i<=10 do
insert into table1(stu_num,stu_name) values(@i,'aaa');
set i=i+1
end while;
end;
-- 问题2
create procedure pro2()
as
begin
declare i int
set i=1
while i<=10 do
begin
insert into table2(stu_num,stu_name) values(i,'aaa');
set i=i+1
end while;
end;
begin
declare @i int ;
declare @pos int;
set @i = 0;
set @pos = 10002;
while @i<5 do
begin
insert into s(stu_num,stu_name,stu_address) values(@pos,'xy','北京市');
set @i = i+1;
set @pos = @pos+1;
end while;
end为什么我这个不行?为什么 标准的存储过程 语法 没有书本讲解?
begin
declare i int;
set i=1;
while i<=10 do
insert into table2 (stu_num,stu_name) values (i,'aaa');
set i=i+1;
end while;
end;
begin
declare i int
declare pos int
set i = 0
set pos = 10002
while i<5 do
begin
insert into s(stu_num,stu_name,stu_address) values(pos,'xy','北京市')
set i = i+1
set pos = pos+1
end while
end依旧不行,受不了, 难道存储过程没有标准语法???
begin
declare i int ;
declare pos int;
set i = 0;
set pos = 10002;
while i<5 do
insert into s(stu_num,stu_name,stu_address) values(pos,'xy','北京市');
set i = i+1;
set pos = pos+1;
end while;
end;
as
begin
#declare i int
declare pos int
#set i = 0
set pos = 10002
while pos<10005 do
begin
insert into s(stu_num,stu_name,stu_address)values(pos,'xy','北京市')
#set i = i+1
set pos = pos+1
end while
end我把这个放sql脚本里,然后source 这个sql脚本,结果就一直报错真他妈受不了了
为什么放sql脚本里 ,source 后就不行?
为什么要source? 直接call mypro()
mysql> delimiter //
你的法子有纰漏,没有考虑到windows路径带来的隐患。我的放在d:\test.sql;内容为:
create procedure mypro1()begin
declare i int
declare pos int
set i = 0;
set pos = 10002;
while pos<10005 do
begin
insert into s(stu_num,stu_name,stu_address)values(pos,'xy','北京市');
set i = i+1;
set pos = pos+1;
end while
end
于是我在命令行下:delimiter //
source d:/test.sql;结果提示打不开这个sql. 原因很可能就是delimiter //导致的。看错误提示:Failed to open file 'd:\test.sql;', error: 2于是我恢复成:delimiter ;
source d:/test.sql;
结果又立即提示 sql中的语法有问题。
create procedure mypro1()
begin
declare i int ;
declare pos int;
set i = 0;
set pos = 10002;
while pos<10005 do
insert into s(stu_num,stu_name,stu_address)values(pos,'xy','北京市');
set i = i+1;
set pos = pos+1;
end while;
end;