【问题标题】:how to write script to insert data into same table in sql如何编写脚本以将数据插入到sql中的同一个表中
【发布时间】:2019-06-11 14:49:59
【问题描述】:

我在 table1(col1、col2 等)中有 1 条记录,我想通过只将一个新值传递给 col2 来插入相同的记录。并且 table2(c1,c2,etc) 有 2 条记录 c2 引用 table1(col1) 值,这里我也想通过将 col1 值传递给 c2 来进行相同的克隆。这怎么可能?

【问题讨论】:

    标签: sql oracle plsql


    【解决方案1】:

    我认为insert . . . select 是你想要的:

    insert into table1 (col1, col2, . . . )
        select col1, <new value>, . . . 
        from table1;
    

    【讨论】:

    • 尝试使用WITH 分隔要插入的内容。 stackoverflow.com/questions/12552288/sql-with-clause-example 但它会使用比必要更多的内存。
    • @giubueno “它会使用比必要更多的内存” 为什么会这样? CTE 并不总是物化——它们默认是内联的。是的,如果您在查询中重用 CTE,或者存在非常复杂的连接,优化器倾向于积极强制实现,但是 a)这里可能不是这种情况 b)它可以通过“内联”优化器提示来修复。
    猜你喜欢
    • 1970-01-01
    • 2021-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多