1
上創建和更新我剛從sqlite切換到postgresql爲我的rails應用程序,並嘗試通過csvs將數據導入數據庫。我已經能夠導入數據了,但是,我無法獲取id,創建並更新字段以在導入csv時自動填充。我將它們留在了csv文件中。當我導入csv時,是否有辦法讓這些字段自動填充?postgres導入csv和自動填充ID,並在
上創建和更新我剛從sqlite切換到postgresql爲我的rails應用程序,並嘗試通過csvs將數據導入數據庫。我已經能夠導入數據了,但是,我無法獲取id,創建並更新字段以在導入csv時自動填充。我將它們留在了csv文件中。當我導入csv時,是否有辦法讓這些字段自動填充?postgres導入csv和自動填充ID,並在
如果您希望在使用COPY
進行導入時將某些字段設置爲默認值,則需要省略COPY
命令中的那些字段。
相反的:
COPY tablename FROM 'somefile.csv' FORMAT csv;
你會寫:
COPY tablename (col1, col2, col3) FROM 'somefile.csv' FORMAT csv;
和完全忽略列從CSV數據,而不是僅僅讓他們的空白。 當您省略這些列時,它們會自動設置爲DEFAULT
。
不幸的是,PostgreSQL無法忽略輸入CSV的列,因此CSV的列必須與COPY
列表中的列匹配。如果無法修改CSV輸入,則可以使用COPY
至TEMPORARY
或UNLOGGED
表格具有相同的結構,然後執行INSERT INTO real_target (col1, col2, col3) SELECT col1, col2, col3 FROM the_temp_table;