4

RODBC を使用して MySQL データベースに data.frame を挿入しようとしています。私が使用しているコマンドは次のとおりです。

sqlSave(channel,dbData,tablename='table_name', append=TRUE,safer=TRUE,fast=FALSE,verbose=TRUE)

データを挿入しようとしているテーブルには、自動インクリメントの主キーがあります。私のテーブルには、主キーを含めて合計 7 列あります。PK を自分で挿入したくないため、データ フレームには 6 列あります。ただし、コマンドを実行すると、次のエラーが発生します。

23000 1062 [MySQL][ODBC 5.1 Driver][mysqld-5.5.13]Duplicate entry '1' for key 'PRIMARY'

上記のエラーから、PK が 1 であるレコードが既に存在する場合に、主キーとして '1' を挿入しようとしていることがわかります。sqlSave() を使用してこれを回避する方法はありますか?

前もって感謝します。

4

2 に答える 2

1

データフレームに 7 番目の列を追加し、PK 列データの値NULLまたは値を割り当てることができます。0その後、MySQL はその値を自動的に生成します。

于 2011-06-15T06:16:48.900 に答える
0

sqlUpdate一致する主キーに基づいて行を更新するように使用します。本当に追加したい場合は、データベースに書き込む前に、新しい行の一意の ID を作成する必要があります。これは R では非常に単純ですが、R の新しいデータだけでなく、既にデータベースにあるものに対して一意であることを確認する必要があります。

于 2011-06-15T06:11:29.857 に答える