BEGIN
DECLARE _err varchar(20);
declare exit handler for sqlexception, sqlwarning, not found set _err='error';
Set @Prefix = Prefix;#前缀
Set @TableName = TableName;#表名
Set @FieldName = FieldName;#列名
Set @Digits = Digits;#保留流水长度
Declare @rule Varchar(500);
IF ISNULL(@Prefix) || LENGTH(@Prefix) < 1 THEN
Set @rule = CONCAT('Max(',@FieldName,')+1,');
ELSE
Set @rule =CONCAT('Right(Max(',@FieldName,'),LENGTH(Max(',@FieldName,'))-LENGTH(',@Prefix,')))+1,');
End If;
Set @strSql = CONCAT('Select Right(concat(''00000000000000000000'',',@rule,@Digits,') Into @MaxID',' From ',@TableName);
PREPARE s1 FROM @strSql;
EXECUTE s1;
DEALLOCATE PREPARE s1;
SET MaxID = @MaxID;
END
参数: IN Prefix varchar(20),IN TableName varchar(50),IN FieldName varchar(50),IN Digits tinyint,OUT MaxID varchar(50)
保存时报错: