
No.3ベストアンサー
- 回答日時:
■APPENDで主キー重複が起きるか?
ダイレクトパスロードか否かで、結果が変わります。
LoaderのオプションがDIRECT = TRUE、かつダイレクトモード可能な条件を満たしている場合、ダイレクトパスロードとになります(素晴らしく速い)が、APPENDモードで主キー重複のレコードができてしまいます。
主キーが重複した場合、主キー制約/インデックスが無効状態になっており、INSERT/DELETE/主キーのUPDATEがエラーになってしまいますので、ご注意ください。
その場合は、TRUNCATE TABLEでいったんデータを消してしまえば、復活できます。
ダイレクトパスロードでない場合のAPPENDモードでは、主キー重複はエラーではじかれます。
■REPLACEの動き
PKが重複するものの入れ替えではなく、まるっと削除してからの追加になります。
TRUNCATEとの違いは、途中でエラーが発生したときにレコードが削除する前の状態に戻る点です。
レコードが消えて良いならTRUNCATEモードのほうが速いですね
ご回答ありがとうございます。
詳しい解説ありがとうございます。
DELETEとTRUNCATEの違いはそんなところにあったんですね...
No.2
- 回答日時:
>これはテーブルのPKが重複していても新しく行がついかされるということでしょうか?
そんなことになったらprimary keyの意味が全くないと思いますが・・
一意制約違反になります。
>逆にREPLACEはPKが重複しているデータに上書きされるということでしょうか?
上書きというか、対象テーブルの全データをdeleteしてからinsertします。
http://download.oracle.com/docs/cd/E16338_01/ser …
No.1
- 回答日時:
> これはテーブルのPKが重複していても新しく行がついかされるということでしょうか?
PKの重複エラーになります。
> 逆にREPLACEはPKが重複しているデータに上書きされるということでしょうか?
現在テーブルにあるデータを全件削除(DELETE)して、データをINSERTします。
通常はREPLACEよりかは、TRUNCATEを使うと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Ruby pandasでsqlite3にテーブル作成・追加・読み出しでindexの取り扱い方教えてください 5 2023/03/08 09:57
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- Excel(エクセル) Excelマクロ 差分抽出の方法が知りたいです。 2 2023/03/07 13:25
- Excel(エクセル) Excel同士のデータの突合 3 2023/08/07 16:34
- Excel(エクセル) Excelでデータを抽出するに良い方法 9 2023/02/06 12:42
- Access(アクセス) Accessのクエリの結果を、既存のエクセルに追加したい 2 2022/07/31 22:44
- Excel(エクセル) 重複データの抽出について 2 2023/07/21 14:52
- Excel(エクセル) エクセルで重複データを行ごとに抽出したい 4 2022/12/05 08:18
- Oracle 質問です。 下記のテーブルとデータがあり、 取得想定結果のように出力したいです。 下記のsqlだと0 2 2023/05/23 19:10
- MySQL #1062 - '0' は索引 'PRIMARY' で重複しています。とでています。 1 2023/01/01 06:13
このQ&Aを見た人はこんなQ&Aも見ています
-
SQLローダーCSV取込で、囲み文字がデータ中に入っている場合について
Oracle
-
sql*loader 数値のロード
Oracle
-
SQL*Loaderでのsysdate使用
Oracle
-
-
4
SQLローダーで複数のCSVファイルのデータを一つのテーブルにInsertしたい
その他(データベース)
-
5
SQL*LoaderでCSVから指定した列のみインポートしたい。
Oracle
-
6
SQL*Loaderで、データを加工してロードしたいです。
Oracle
-
7
データ削除とSQL*Loaderでのインポート
Oracle
-
8
SQLLOADER
Oracle
-
9
SQL*Loader フォーマット変換について
Oracle
-
10
SQL*Loaderのコミットポイント設定がうまくいってない?
Oracle
-
11
SQLPLUSで結果を画面に表示しない
Oracle
-
12
SQL、2つのテーブルで条件一致したものだけdeleteする方法は?
Oracle
-
13
SQL*Loader
Oracle
-
14
SQL Loaderを使いたい
Oracle
-
15
badファイルの内容を知る方法
その他(データベース)
-
16
CSVファイルを読み込んでテーブルの更新
Oracle
-
17
PL/SQLでログを確認したい。
Oracle
-
18
PL/SQLで@ファイル名が反応しません
Oracle
-
19
ORACLEでLONG項目からCHAR項目へ桁数指定で文字列を抽出
その他(データベース)
-
20
SQLで特定の項目の重複のみを排除した全項目を取得する方法
その他(プログラミング・Web制作)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
単一グループのグループ関数で...
-
where句中のtrim関数について
-
group byの並び順を変えるだけ...
-
updateで複数行更新したい
-
【PL/SQL】FROM区に変数を使う方法
-
引数によってwhere句を切り替え...
-
「数字で始まらない」ものを抽...
-
AccessのSQL文で1件のみヒット...
-
トランザクションログを出力せ...
-
トリガからプロシージャのコー...
-
データ
-
SQL*Loader Append
-
440 OIP エラーについて(ORADC)
-
アクセスのレポートでレコード...
-
大量レコードをTRUNCATEせずに...
-
PL/SQL内の共通関数の引数にフ...
-
SQLで条件にヒットしたレコード...
-
osqleditについて
-
列1と列2の関係性で列3の条...
-
ACCESS2007のエクスポート上限
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【PL/SQL】FROM区に変数を使う方法
-
where句中のtrim関数について
-
単一グループのグループ関数で...
-
SELECT FOR UPDATE で該当レコ...
-
AccessのSQL文で1件のみヒット...
-
group byの並び順を変えるだけ...
-
SQL*Loader Append
-
トランザクションログを出力せ...
-
引数によってwhere句を切り替え...
-
データ
-
アクセスのレポートでレコード...
-
osqleditについて
-
「数字で始まらない」ものを抽...
-
SQLで条件にヒットしたレコード...
-
1レコード全てを改行なしで表...
-
BLOB型項目をSQLの検索条件に指...
-
PL/SQL内の共通関数の引数にフ...
-
updateで複数行更新したい
-
デフォルトでデータが表示され...
-
【SQL】違うフィールド同士の集...
おすすめ情報