我正在为数据库创建一个函数,该函数将允许我在视图中自动递增主键,以下是我的函数
delimiter //
CREATE FUNCTION `func_inc_var_session`(reset BIT) RETURNS int
NO SQL
NOT DETERMINISTIC
begin
IF reset THEN
SET @var := 0;
ELSE
SET @var := IFNULL(@var,0) + 1;
END IF;
return @var;
end
//
delimiter ;
如何更改以下功能以避免每次运行视图时都从最后一个自动递增的数字开始。
我还尝试了以下方法来创建视图:我收到以下错误消息:select语句具有参数,因此发生错误
create view view_calvndt3 as
SELECT
@rownum := @rownum + 1 AS `id`,
`adggtnz`.`lng02_rpt_b_calvedets`.`calvdatealv` AS `calvdate`,
CONCAT('TZN',
`adggtnz`.`lng02_rpt_b_calvedets`.`tagprefix`,
`adggtnz`.`lng02_rpt_b_calvedets`.`tagsec`,
'-',
`adggtnz`.`lng02_rpt_b_calvedets`.`name`) AS `calfid`,
`adggtnz`.`lng02_rpt_b_calvedets`.`damid` AS `damid`
FROM
`adggtnz`.`lng02_rpt_b_calvedets`, (SELECT @rownum := 0) r
WHERE
((`adggtnz`.`lng02_rpt_b_calvedets`.`calvdatealv` <> 0)
AND (NOT ('0000-00-00'))
AND (CONCAT('TZN',
`adggtnz`.`lng02_rpt_b_calvedets`.`tagprefix`,
`adggtnz`.`lng02_rpt_b_calvedets`.`tagsec`,
'-',
`adggtnz`.`lng02_rpt_b_calvedets`.`name`) IS NOT NULL));