-1
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)
4

2 回答 2

0

你必须删除@.

 DECLARE BId VARCHAR(100);
 SET BId = AId + '_' + Number + '_' + Address;
于 2012-07-09T10:09:22.087 回答
0

正如@AVD 所说,您需要删除@,我猜您想在过程中连接字符串?

这是正确的做法。

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
于 2012-07-09T10:17:25.307 回答