還有幾個關於此主題的其他stackoverflow查詢,但沒有一個具有滿意的答案。在sqlite3中:將列從一個表複製到另一個表
我有一個表BeerReviews,它缺少一列(review_text),另一個表BeerReviewsWithText缺少一個不同的列(brewery_name)。否則,表格行按照相同的方式排序,所以我想簡單地將BeerReviews中的brewery_name列添加到BeerReviewsWithText中。
我啓動sqlite3的是:
alter table BeerReviewsWithText add column beer_brewername varchar;
attach 'beer_reviews.sqlite' as BR
我通過添加一個空列BeerReviewsWithText:
sqlite3 beer_rewiews_with_text.sqlite
然後我通過附加啤酒審查表問題建議使用插入來填充列,但是這個將新行添加到表中,僅填充beer_brewername列。
insert into BeerReviewsWithText(beer_brewername) select brewery_name from BeerReviews;
相反,更新似乎填補了空值,但是當我運行下面的(類似於another question's answer)所有beer_brewername值是相同的:
update BeerReviewsWithText set beer_brewername=(select brewery_name from BR.BeerReviews);
這似乎是奇怪的行爲因爲我得到酒廠的名字的預期列表當我運行:
select brewery_name from BR.BeerReviews limit 50;
我是新來的sqlite的,所以有人可以解釋我在做什麼錯誤?
好了,我跑這是服用_incredibly_長的時間如下: '更新main.BeerReviewsWithText設置beer_brewername =(選擇從那裏brewery_id = main.BeerReviewsWithText.beer_brewerid BR.BeerReviews brewery_name);' 的brewery_id和beer_brewerid領域的所有匹配行到行,但不跨越行的唯一標識符,因爲每個啤酒廠有很多評論。希望這沒關係? –
只要啤酒廠ID唯一標識啤酒廠名稱,這是可以的。爲了高效查找,您需要'brewery_id'列上的索引。 –
向兩個id列添加獨立項後,更新在合理的時間內運行。我將不得不多讀些關於這些如何加快速度的東西。再次感謝! –