【发布时间】:2021-03-08 09:27:15
【问题描述】:
我需要将数据插入表中,其中一列是 seq_number。我在选择查询中有一个 where 子句,我想为要插入的每条记录插入 max(seq_num)+1。 seq_num 的最大值是给我 where 子句的最大值,而不是表中的实际最大值。
INSERT INTO TABLE_NAME
SELECT
NEWID(),
MAX(SEQ_ORD_R)+1, -- This should be the max from table irrespective of the where clause
CURRENT_TIMESTAMP,
CURRENT_TIMESTAMP
FROM TABLE_NAME
WHERE SOFA_K = 'FD5B6BE8-F1CF-42C0-9216-B13163413F96'
【问题讨论】:
-
您可以通过将
seq_ord_r定义为自动增量列来实现这一点,而根本不这样做。 -
看这里:stackoverflow.com/questions/65001331/…它可以帮助你
-
MySql 没有函数
NEWID据我所知(这是用户定义的函数吗?),列名seq_num根据您的描述还是SEQ_ORD_R根据您的 SQL?见Why should I provide a Minimal Reproducible Example for a very simple SQL query?。 -
Gordon Linoff -- 感谢您的快速回复,我不知道他们是否会同意此时更改数据类型,但我会问。 Slava Rozhnev -- 谢谢,我正在查看链接 Booboo -- sql server 具有 NEWID() 函数来创建 UUID(唯一标识符)。这里的问题列是我在上面的描述中引用为 seq_num 的 SEQ_ORD_R。
-
MySql有一个函数
UUID。
标签: mysql sql insert-select