我具有以下設置:複製數據的一列從一個表到另一PostgreSQL中
表1:
latdouble
3
4
5
1
6
2
6
9
表2:
time latdouble(type double) latvarchar(type varchar)
2:00 3
3:00 4
4:00 5
5:00 1
6:00 6
7:00 2
8:00 6
9:00 9
在表1基本上latdouble是在正確的順序,我想將它們的值複製到Table2中,結果應該是:
表2:
time latdouble(type double) latvarchar(type varchar)
2:00 3 3
3:00 4 4
4:00 5 5
5:00 1 1
6:00 6 6
7:00 2 2
8:00 6 6
9:00 9 9
據我所知,我需要使用類似如下的命令:
update Table2 set latdouble = (select latdouble from Table1)
不過,我得到以下錯誤:
ERROR: more than one row returned by a subquery used as an expression
我肯定有一個簡單的修復,但我不明白,
謝謝, 詹姆斯
更新:讓我解釋一下這是如何發生的。表2最初看起來像:
表2:
time latvarchar(type varchar)
2:00 3
3:00 4
4:00 5
5:00 1
6:00 6
7:00 2
8:00 6
9:00 9
我加入latdouble(雙型)柱,以表2。
然後我創建了一個名爲Table1的新表,其中包含一個名爲latdouble(type double)的列。我用下面的命令從表2投latvarchar並將其複製到表1:
insert into Table1 (latdouble) select cast(latvarchar as double precision) from Table2
,現在我想的值複製從表1回latdouble參見表2 latdouble。我這樣做的原因是將latvarchar的值轉換爲double並將它們保存在latdouble中,而不必創建整個Table2的臨時副本,因爲它是一個包含幾個索引的非常大的表。
不表1有一個排序主鍵?如果沒有,那麼你看到的'訂單'僅僅是發動機方面的便利。沒有什麼能阻止它在將來的查詢中以任何隨機順序顯示它......添加並向Table1填充一些列以指示您想要的排序順序,此時將有可能實現解決方案。 – PinnyM
不,它沒有主鍵,但請您可以看到我添加的更新,它解釋了這種情況是如何產生的。我選擇創建Table1的方法是否意味着'訂單'不僅僅是方便? –
沒有主鍵的表格(接近)沒有意義。 – wildplasser