在视图中自动增加ID的功能

时间:2018-10-23 12:39:47

标签: mysql

我正在为数据库创建一个函数,该函数将允许我在视图中自动递增主键,以下是我的函数

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));

0 个答案:

没有答案