CREATE PROCEDURE `createEmpAndEpost`(
        IN _ename varchar(225) character set utf8, 
        IN _password varchar(25), 
        IN _sex int(1),
        IN _birthDate datetime,
        IN _telephone varchar(25),
        IN _eDate datetime,
        IN _pno int(11))
begin
insert into emp(`ename`, `password`, `sex`, `birthDate`, `telephone`, `eDate`) 
           values(_ename, _password, _sex, _birthDate, _telephone, _eDate);
    select @eno:= LAST_INSERT_ID();
    insert into epost(`eno`,`pno`) values(@eno, _pno);
end;运行出错: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 '' at line 8

解决方案 »

  1.   

    delimiter //
    CREATE PROCEDURE `createEmpAndEpost`(
            IN _ename varchar(225) character set utf8, 
            IN _password varchar(25), 
            IN _sex int(1),
            IN _birthDate datetime,
            IN _telephone varchar(25),
            IN _eDate datetime,
            IN _pno int(11))
    begin
    insert into emp(`ename`, `password`, `sex`, `birthDate`, `telephone`, `eDate`) 
               values(_ename, _password, _sex, _birthDate, _telephone, _eDate);
        select @eno:= LAST_INSERT_ID();
        insert into epost(`eno`,`pno`) values(@eno, _pno);
    end;
    //
      

  2.   

    MYSQL命令行下:
    DELIMITER $$
    CREATE PROCEDURE `createEmpAndEpost`(
             IN _ename VARCHAR(225) CHARACTER SET utf8, 
             IN _password VARCHAR(25), 
             IN _sex INT(1),
             IN _birthDate DATETIME,
             IN _telephone VARCHAR(25),
             IN _eDate DATETIME,
             IN _pno INT(11))
     BEGIN
     INSERT INTO emp(`ename`, `password`, `sex`, `birthDate`, `telephone`, `eDate`) 
                VALUES(_ename, _password, _sex, _birthDate, _telephone, _eDate);
         SELECT @eno:= LAST_INSERT_ID();
         INSERT INTO epost(`eno`,`pno`) VALUES(@eno, _pno);
     END$$
    DELIMITER ;
      

  3.   

    如果不用delimiter  则遇到;就执行了