0

「ダンプ」テーブルからライブ テーブルに存在しない新しいレコードのみを挿入しています。私の問題は、ライブに挿入したくない ID 列があることです。ライブ テーブルの ID 列で値の増分を処理したいのですが、挿入エラー「挿入エラー: 列名または数指定された値がテーブル定義と一致しません。」これを回避する方法はありますか、それとも ID 列をまとめて削除する唯一の修正ですか?

ありがとう、サム

4

3 に答える 3

1

私は問題を理解しました....私のライブテーブルには ID フィールドが ID として設定されていませんでした。どういうわけか、それを作成したときに、そのフィールドが正しく設定されていませんでした。

于 2012-08-09T14:09:41.150 に答える
1

ID 列を除いて、クエリに必要なすべての列をリストする必要があります。

を絶対に使用してはならないもう 1 つの理由SELECT *

INSERT liveTable
(col1, col2, col3)
SELECT col1, col2, col3
FROM dumpTable dt
WHERE NOT EXISTS
(
  SELECT 1 
  FROM liveTable lt
  WHERE lt.Id == dt.Id
)

プロのヒント:OUTER JOINダンプ テーブルとライブ テーブルの間でを使用して上記を実現することもできWHERE liveTable.col1 = NULLます (おそらく、ダンプ テーブル エイリアスで選択した列名を修飾する必要があります)。

于 2012-08-08T13:41:17.170 に答える
0

このように挿入ステートメントにその列を残すことができます

insert into destination (col2, col3, col4)
select col2, col3 col4 from source

ただしないでください

insert into destination
select * from source
于 2012-08-08T13:41:36.800 に答える