2017-04-22 55 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 –