【问题标题】:How to insert on top in sqlite? LIMIT does not work如何在sqlite中插入顶部?限制不起作用
【发布时间】:2017-04-22 15:12:02
【问题描述】:

SQLite 中有 INSERT TOP(...) 语句吗? 以下问题:

  1. 我创建了一个包含 5 列的表
  2. 我从另一个表中插入了 5 列中的 4 列
  3. 现在我想从第三个表中插入第 5 列

使用我为第 5 列编写的 INSERT 代码添加了新行,并且值不会从顶部填满列。

co.execute('''CREATE TABLE newtable1 (column1 text, column2 int, column3 int, column4 text,column5 text)''')
co.execute('''INSERT INTO newtable1 (column1, column2, column3, column4) SELECT column1a, column2a, column3a, column4a  FROM db1''')
c.commit()


co.execute('''INSERT INTO newtable1 (column5) SELECT newColumn FROM db2''')
c.commit()

我正在寻找类似的东西

co.execute('''INSERT INTO newtable1 (column5) SELECT TOP (9999) newColumn FROM db2''')

我尝试了 LIMIT,但它再次创建了 9999 个额外的行。

co.execute('''INSERT INTO newtable1 (column5) SELECT  newColumn FROM db2 LIMIT 9999''')

非常感谢您的帮助!

【问题讨论】:

    标签: python sqlite insert sql-insert


    【解决方案1】:

    您必须在创建的行上使用 UPDATE

    更新表名 SET column1 = value1,column2 = value2....,columnN = valueN WHERE [条件];

    或从头开始插入

    INSERT INTO newtable1 (column1 , column2, column3, column4, column5) SELECT column1a, column2a, column3a, column4a , newColumn  FROM db1, db2
    

    【讨论】:

    • 我试过这个: UPDATE newtable1 SET column5 = (SELECT newColumn FROM db2 ) WHERE column5 IS NULL 它确实填满了所有行,但只有 newColumn 的第一个条目。我需要 row1 中 newColumn 的第一个值和 row2 中 newColumn 的第二个值...
    • INSERT INTO newtable1 (column1 , column2, column3, column4, column5) SELECT column1a, column2a, column3a, column4a , newColumn FROM db1, db2
    猜你喜欢
    • 1970-01-01
    • 2016-03-02
    • 1970-01-01
    • 2017-02-21
    • 2018-02-19
    • 1970-01-01
    • 2020-02-26
    • 2014-01-18
    • 1970-01-01
    相关资源
    最近更新 更多