【发布时间】:2017-11-30 10:49:48
【问题描述】:
我正在运行带有以下查询的 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'
我已经在 DB2 和 PostgreSQL 上验证了这个查询。它工作正常。我想知道WITH AS 子句是否不支持MySQL procedure 查询?我怎样才能用任何替代方法来实现这一点?
【问题讨论】:
-
尝试将 TEMP (N) 更新为 TEMP N 并检查一次
-
遇到同样的错误
标签: mysql sql database procedure