对mysql不是很熟。。
DROP PROCEDURE IF EXISTS InsertUserInfo;
create PROCEDURE InsertUserInfo()  
BEGIN  
    DECLARE i int DEFAULT 0;  
    START TRANSACTION; 
    DECLARE username VARCHAR(20);  
          WHILE i<600000 DO 
          set username= concat('test', i);
INSERT INTO userinfo
(
CompanyId,LoginName,Password,UserType,SurName,GivenName,Gender,DOB,
IDCardNum,TelOffice,TelMobile,Email,IM1,IM2,Fax,LastLoginTime,LoginCount,
Status,Notes,Flag,CreateUser,CreateTime,CreateIP
)
VALUES
(
0,username,'e10adc3949ba59abbe56e057f20f883e',30,'test','test','M',
'2010-12-16 00:00:00','440921198406082356','0750-88888888','1369999999','[email protected]','222222',
'222222','0750-5555555555','2010-12-16 00:00:00',20,1,'test','M',1,'2010-12-16 00:00:00','192.168.1.90'
); set i=i+1;  
          END WHILE;  
    COMMIT; 
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 'DECLARE @username VARCHAR(20);  
          WHILE i<600000 DO 
          set @u' at line 5

解决方案 »

  1.   


    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 'DECLARE username VARCHAR(20);  
              WHILE i<600000 DO 
              SET use' at line 5
      

  2.   

    DROP PROCEDURE IF EXISTS InsertUserInfo;
    create PROCEDURE InsertUserInfo()  
    BEGIN  
        DECLARE i int DEFAULT 0;  
        DECLARE username VARCHAR(20);  
        START TRANSACTION; 
    ===
    DECLARE 必须放在其它语句之前。
      

  3.   

    DELIMITER $$
    DROP PROCEDURE IF EXISTS InsertUserInfo $$
    CREATE PROCEDURE InsertUserInfo()  
    BEGIN  
       DECLARE i INTEGER DEFAULT 0;
     DECLARE username VARCHAR(20);  
       START TRANSACTION; 
      
              WHILE i<600000 DO 
              SET username=CONCAT('test', i);
    INSERT INTO userinfo
    (
    CompanyId,LoginName,PASSWORD,UserType,SurName,GivenName,Gender,DOB,
    IDCardNum,TelOffice,TelMobile,Email,IM1,IM2,Fax,LastLoginTime,LoginCount,
    STATUS,Notes,Flag,CreateUser,CreateTime,CreateIP
    )
    VALUES
    (
    0,username,'e10adc3949ba59abbe56e057f20f883e',30,'test','test','M',
    '2010-12-16 00:00:00','440921198406082356','0750-88888888','1369999999','[email protected]','222222',
    '222222','0750-5555555555','2010-12-16 00:00:00',20,1,'test','M',1,'2010-12-16 00:00:00','192.168.1.90'
    ); SET i=i+1;  
              END WHILE;  
        COMMIT; 
    END $$
    DELIMITER ;