2017-01-20 56 views
0

代碼:SqlSave錯誤:無法追加到表

sqlSave(SQL,data.frame(df),tablename='Data',append = TRUE,rownames = FALSE) 

中,我試圖插入數據的表有一個主鍵是自動遞增。我的表共有5列,包括主鍵。在我的數據框中,我有4列,因爲我不想自己插入PK。然而,當我運行命令時,得到下面的錯誤:

錯誤colnames<-*tmp*,值= C( 「出價」, 「名稱」, 「設定」,: 長度 'dimnames'[2 ]不等於陣列程度

此外,當我自己插入在數據幀中的主鍵,它仍然無法在sqlSave工作。

錯誤(SQL,data.frame(DF), tablename =「Data」,: 無法附加到表'Data'

+0

的認定中的該錯誤不具有'sqlSave'做。 「df」的內容是什麼?運行'str(data.frame(df))',因爲您可能在列中有嵌套列表。顯示df的來源。 – Parfait

+0

列中沒有嵌套列表。它是一個使用數據庫中的另一個表創建的df,我試圖附加一個不同的表。 –

+0

另外,做了很多研究,但沒有發佈任何解決方案,其中Sqlsave用於附加一個具有PK的數據框。它適用於沒有PK的桌子 –

回答

0

試試safer = FALSE

sqlSave

if (!append) { 
    if (safer) 
     stop("table ", sQuote(tablename), " already exists") 
     ...... 
    } 
    ...... 
if (safer) 
    stop("unable to append to table ", sQuote(tablename))