0

データベース A からデータベース B にテーブルを転送する必要があります。テーブルには自動インクリメント列があります。新しいデータベースのテーブルの内容は、自動インクリメント列の値を含め、元のデータベースのテーブルと同一である必要があります。

col1 が自動インクリメント列である次の LOAD TABLE は機能しません。

set identity_insert TableName on;
LOAD TABLE TableName
(col1,col2,col3)
FROM 'file.csv';

次のエラーが表示されます。

列 col1 を挿入または更新できません。オプション 'identity_insert' を、変更する ID 列を含む特定のテーブル名に設定してください。

それでも、identity_insert オプションを設定しています。このコマンドの何が問題になっていますか?

4

2 に答える 2

0

DEFAULTS OFF は、デフォルトの ID (自動インクリメント) 値を変更したい場合にオプションとして使用する必要があるようです。

参照: http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.dc00801.1530/doc/html/san1281564935243.html

それが機能せず、これは 1 回限りのことです...これを達成する最も簡単な方法は、自動インクリメントを持たない TableName_work にテーブルをロードし、identity_insert をオンにした select ステートメントを介してデータを宛先に挿入することです。 .

于 2014-07-24T04:31:56.570 に答える