【问题标题】:Auto Incremental serial number for MySQL ViewMySQL View 的自动增量序列号
【发布时间】:2017-03-23 14:45:52
【问题描述】:

我的项目有问题需要为我的 MySQL 视图插入一个自动增量值,如果你们帮助解决这个障碍,我会很好,这是我想要自动增量序列号的代码(比如 S .No) 作为第一列。

    CREATE 
    ALGORITHM = UNDEFINED 
    DEFINER = `srems_admin`@`localhost` 
    SQL SECURITY DEFINER
VIEW `emp_elec_consumption_view` AS
    SELECT 
        `t1`.`PFNUMBER` AS `PFNUMBER`,
        `emp`.`EMPNAME` AS `EMPNAME`,
        `t1`.`MonthAndYear` AS `MonthAndYear`,
        `qt`.`QTRSCODE` AS `QTRSCODE`,
        `t1`.`UNITS_CONSUMED` AS `UNITS_CONSUMED`,
        (`t2`.`FIXED_COMPONENT` + (`t1`.`UNITS_CONSUMED` * `t2`.`RATE_COMPONENT`)) AS `Amount`
    FROM
        (((`srems`.`mstqtroccu` `qt`
        JOIN `srems`.`mstemp` `emp`)
        JOIN `srems`.`msttariffrate` `t2`)
        JOIN (SELECT 
            `srems`.`tranmeterreading`.`PFNUMBER` AS `PFNUMBER`,
                (`srems`.`tranmeterreading`.`CLOSINGREADING` - `srems`.`tranmeterreading`.`OPENINGREADING`) AS `UNITS_CONSUMED`,
                CONCAT(CONVERT( IF((LENGTH(MONTH(`srems`.`tranmeterreading`.`READINGDATE`)) > 1), MONTH(`srems`.`tranmeterreading`.`READINGDATE`), CONCAT('0', MONTH(`srems`.`tranmeterreading`.`READINGDATE`))) USING UTF8), '/', RIGHT(YEAR(`srems`.`tranmeterreading`.`READINGDATE`), 2)) AS `MonthAndYear`,
                (SELECT 
                        `t`.`TRANSACTIONID`
                    FROM
                        `srems`.`msttariffrate` `t`
                    WHERE
                        (`t`.`TORANGE` > (`srems`.`tranmeterreading`.`CLOSINGREADING` - `srems`.`tranmeterreading`.`OPENINGREADING`))
                    LIMIT 1) AS `tariffplanid`
        FROM
            `srems`.`tranmeterreading`) `t1`)
    WHERE
        ((`t1`.`tariffplanid` = `t2`.`TRANSACTIONID`)
            AND (`t1`.`PFNUMBER` = `qt`.`PFNUMBER`)
            AND (`t1`.`PFNUMBER` = `emp`.`PFNUMBER`))

请在正确的位置插入内容并将其作为评论发布以获得 S.No,它应该从 1 开始自动递增,并且它应该是第一列,提前 ty

【问题讨论】:

    标签: mysql sql auto-increment serial-number


    【解决方案1】:

    你的视图无论如何都没有机会在 MySQL 中工作,所以你还是放弃吧。

    MySQL 不允许在 FROM 子句中使用子查询。而且您的查询非常复杂,有很多子查询。

    它也不允许变量,所以获取行号相当复杂。

    【讨论】:

    • Ups,为什么不能在视图中使用变量?
    • @JuanCarlosOropeza 。 . .我不知道。询问编写 MySQL 的人。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-01
    • 1970-01-01
    • 2011-12-05
    • 1970-01-01
    • 2012-04-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多