2017-04-22 61 views
0

SQLite中是否存在INSERT TOP(...)语句? 如下问题:如何在sqlite中插入顶部? LIMIT不起作用

  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''') 

我试着限制,但它再次创造9999多行。

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

非常感谢您的帮助!

回答

0

你必须在创建的行使用UPDATE

UPDATE TABLE_NAME SET COLUMN1 =值1,列2 =值2 ....,columnN =值N WHERE [条件];

或从一开始就

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

我尝试了这个INSERT: UPDATE newtable1 SET column5 =(SELECT newColumn与DB2),其中column5 IS NULL 它填满所有行,但只能用newColumn的第一个条目。我需要row1中newColumn的第一个值和row2中newColumn的第二个值... –

+0

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