【问题标题】:insert maximum selected value as new record oracle插入最大选定值作为新记录 oracle
【发布时间】:2014-02-07 16:39:12
【问题描述】:

我正在使用 oracle DB 。我正在尝试从表中选择最大数量,然后将其增加一,然后将其重新插入为新记录,例如: insert into table1(id,name) values (select max(id) from table1 + 1,'name2');

但它给了我缺少表达式的错误。

提前致谢。

【问题讨论】:

    标签: sql oracle oracle10g


    【解决方案1】:
    INSERT INTO table1( id, name )
      SELECT max(id) + 1, 'name2'
        FROM table1
    

    将是有效的语法。这种生成id 值的方法是一种非常糟糕的方法。它在多用户环境中不起作用,因为许多不同的会话可能获得相同的id 值。它也比使用序列效率低得多。

    【讨论】:

    • 许多不同的会话可能获得相同的 id +1。非常重要的一点。
    【解决方案2】:
    insert into table1(id,name) values ( (select max(id) from table1 ) + 1,'name2')
    

    【讨论】:

      【解决方案3】:

      通过选择插入表格时,不需要关键字values

      insert into table1(id,name) (select max(id) from table1 + 1,'name2');
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-07-11
        • 1970-01-01
        • 2013-10-05
        • 1970-01-01
        • 1970-01-01
        • 2020-04-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多