【问题标题】:Insert with nested select使用嵌套选择插入
【发布时间】:2018-09-23 02:19:59
【问题描述】:

我正在尝试将数据插入 kundvagn(购物车),并从 kundorder(orders) 中选择最高 ID。

我这样做完全错了吗?

INSERT INTO kundvagn
(ordnr, artnr, antal),
VALUES(SELECT MAX(ordnr) from kundorder, 1, 3);

【问题讨论】:

    标签: sql oracle select insert max


    【解决方案1】:

    您不需要values 关键字。相反,请使用insert . . . select:

    INSERT INTO kundvagn (ordnr, artnr, antal)
        SELECT MAX(ordnr), 1, 3
        FROM kundorder;
    

    让我补充一点,代码看起来很可疑。基于MAX(ordnr)的插入没有考虑到其他用户/线程可能正在修改数据。

    【讨论】:

    • 我们如何让它考虑其他线程?在这种情况下,查询之前的读取锁定kundorder 被认为是正确的吗?
    猜你喜欢
    • 1970-01-01
    • 2015-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    相关资源
    最近更新 更多