程序中的MySql错误

时间:2012-07-09 10:02:26

标签: mysql mysql-error-1064

DELIMITER $$
CREATE PROCEDURE `InsertInfo`(
    IN AId VARCHAR(20),
    IN Number VARCHAR(30),
    IN Address VARCHAR(30)
)
BEGIN
    DECLARE @BId VARCHAR(100);
    SET @BId = AId + '_' + Number + '_' + Address;
END$$

DELIMITER ;

获取错误:

错误代码:1064 您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册 要在'@BId VARCHAR(100);

附近使用的语法
SET @BId = AId + '_' + Number + '_' + Address;
END' at line 7
(0 ms taken)

2 个答案:

答案 0 :(得分:0)

您必须删除@

 DECLARE BId VARCHAR(100);
 SET BId = AId + '_' + Number + '_' + Address;

答案 1 :(得分:0)

正如@AVD所说,您需要删除@和 我想你想在程序中使用CONCAT字符串吗?

这是正确的方法。

DROP PROCEDURE IF EXISTS `InsertInfo`;
DELIMITER $$
CREATE PROCEDURE `InsertInfo`(
    IN AId VARCHAR(20),
    IN Number VARCHAR(30),
    IN Address VARCHAR(30)
)
BEGIN
    DECLARE BId VARCHAR(100);
    SET BId = CONCAT(AId,'_',Number,'_',Address);
    SELECT BId;
END$$

DELIMITER ;

致电InsertInfo

CALL InsertInfo('a','b','c');

返回

a_b_c