MariaDB社区

标题: 在sql server可以,在MySQL不行 [打印本页]

作者: zhanghb2    时间: 2010-10-19 15:13
标题: 在sql server可以,在MySQL不行
请教各位大牛,下面一段sql在sql server上可以执行,但是在MySQL5.1上却不行,

create table gkcf (
    KSH CHAR(14) not null,
    KH  CHAR(9) not null,
    XM  CHAR(9) not null,
    KM1 INT,
    KM2 INT,
    KM3 INT,
    KM4 INT,
    KM5 INT,
    ZF  INT )
go   
create PROCEDURE PROC_MAKEGKCF
(
    @start INT,
    @stop  INT   
)
begin
    declare @cur INT
   
    declare @km1 int
    declare @km2 int
    declare @km3 int
    declare @km4 int
    declare @km5 int
   
    declare @zf int
   
    Select @cur=@start
    While @cur<=@stop
    begin
        Select @km1=CONVERT(INT,RAND()*100)
        Select @km2=CONVERT(INT,RAND()*100)
        Select @km3=CONVERT(INT,RAND()*100)
        Select @km4=CONVERT(INT,RAND()*100)
        Select @km5=CONVERT(INT,RAND()*100)
        Select @zf=@km1+@km2+@km3+@km4+@km5
        insert into gkcf values(CONVERT(CHAR(14), @cur),CONVERT(CHAR(9), @cur),'测试',@km1,@km2,@km3,@km4,@km5,@zf)
        Select @cur=@cur+1
    end
end
go
create UNIQUE index gkcf_index on gkcf (KSH)
go
PROC_MAKEGKCF 1,100000
go

报错是:
Error Code : 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 'go   
create PROCEDURE PROC_MAKEGKCF
(
    @start INT,
    @stop  INT   
) TYPE' at line 11
(0 ms taken)

第十一行就是第一个go那一行

作者: kider    时间: 2010-10-19 16:11
有些是不通用的,是不能直接用,需要转换。

mysql中没有go,用";"代替go

社区有其他帖子可以参考的
作者: zhanghb2    时间: 2010-10-19 16:49
回复 kider 的帖子

我改了还是不行,高手能否帮我写一个。我的程序是先创建一张表,然后用随机方法往表里填充数据。
不甚感激~~

作者: kider    时间: 2010-10-20 09:27
改成什么样了?
作者: zhanghb2    时间: 2010-10-20 15:06
回复 kider 的帖子

把所有 go 换成了分号
而且很奇怪,MySQL每一条独立语句要加一个分号,但是我每加一个分号就有一个报错

作者: kider    时间: 2010-10-20 17:18
需要转换很多:
http://www.mysqlpub.com/forum.php?mod=forumdisplay&fid=30




欢迎光临 MariaDB社区 (http://123.56.88.72/) Powered by Discuz! X3.2