mysql - 如何在INSERT MySQL查询中使用WITH AS?

标签 mysql sql database procedure

我正在使用以下查询运行 Mysql 过程(MySQL 5.7):

DECLARE LAST_MAC BIGINT;

SET LAST_MAC = (SELECT COALESCE(MAX(MAC_ADDRESS), 0) FROM MAC_ADDRESS_TABLE) + 1;
      INSERT INTO MAC_ADDRESS_TABLE(MAC_ADDRESS)
      WITH TEMP (N)
      AS (
        VALUES (LAST_MAC)
        UNION ALL
        SELECT N+1 FROM TEMP WHERE N+1 < (LAST_MAC + CREATED)
      ) SELECT N AS MAC_ADDRESS FROM TEMP;

运行查询后,我收到以下错误:

right syntax to use near 'TEMP (N)
      AS (
        VALUES (LAST_MAC)
        UNION ALL
        SELECT N'

我已在 DB2PostgreSQL 上验证了此查询。它工作正常。我想知道MySQL procedure查询是否不支持WITH AS子句?我怎样才能用任何替代方法实现这一目标?

最佳答案

MySql 不支持 WITH 子句。有关此的更多信息,请参阅此 How do you use the "WITH" clause in MySQL?

关于mysql - 如何在INSERT MySQL查询中使用WITH AS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47571586/

相关文章:

php - 如何将元素 id 放入 PHP 变量中

php - 如何使用嵌套别名让查询更简单?

java - 使用 JDBC 和 MySQL 更新大型结果集

database - 通过 JDBC 连接到 Talend 中的 OpenEdge

python - python的高效oodbms?

php - SQLSTATE[HY000] [1045] 使用 CakePHP 拒绝用户 'username' @'localhost' 的访问

mysql - Django 多个数据库 - 无法连接到 mysql 服务器回退到 sqlite

php - 从 mysql 表中选择行并使用复选框和文本输入添加到另一个表中?

SQLite:使用 COUNT 和 GROUP BY 加速 SQL 语句

python - pymssql.OperationalError : DB-Lib error message 20009, 严重性 9