INSERT 文は、データベースにローを追加するために使用します。INSERT 文にはインポート先テーブルにインポートするデータが含まれているため、この文は対話型入力と見なされます。リモート・データ・アクセスに INSERT 文を使用して、ファイルではなく別のデータベースからデータをインポートすることもできます。
次の場合は、INSERT 文を使用してデータをインポートします。
1 つのテーブルに少量のデータをインポートする場合
ファイル・フォーマットが柔軟な場合
ファイルではなく外部データベースからリモート・データをインポートする場合
INSERT 文では、ON EXISTING 句を使用して、挿入するローがすでに挿入先のテーブルに存在する場合に実行するアクションを指定できます。ただし、ON EXISTING 条件を満たすローが数多く存在する可能性がある場合は、代わりに MERGE 文を使用してください。MERGE 文を使用すると、一致するローに対して実行するアクションをより詳細に制御できます。また、一致を定義するためのより高度な構文も使用できます。MERGE 文を参照してください。
即時ビューでは、基本となるテーブルにデータをバルク・ロードしようとするとエラーが返されます。最初にビューのデータをトランケートしてから、バルク・ロード・オペレーションを実行する必要があります。
手動ビューでは、基本となるテーブルにデータをバルク・ロードできます。ただし、ビュー内のデータは次回のリフレッシュ時までは古いままです。
テーブルへのバルク・ロード・オペレーション (INSERT など) を実行する際は、先に従属するマテリアライズド・ビューのデータをトランケートすることを検討してください。データをロードしたら、ビューをリフレッシュします。TRUNCATE 文とREFRESH MATERIALIZED VIEW 文を参照してください。
即時テキスト・インデックスでは、基本となるテーブルで INSERT などのバルク・ロード・オペレーションを実行してからテキスト・インデックスを更新すると、自動更新にもかかわらず時間がかかる場合があります。手動テキスト・インデックスでは、リフレッシュにも時間がかかる場合があります。
テーブルへのバルク・ロード・オペレーション (INSERT など) を実行する際は、先に従属するテキスト・インデックスを削除することを検討してください。データをロードしたら、テキスト・インデックスを再作成します。DROP TEXT INDEX 文とCREATE TEXT INDEX 文を参照してください。
INSERT 文を使用すると、変更内容はトランザクション・ログに記録されます。このため、データベース・ファイルに関するメディア障害が発生した場合は、変更内容に関する情報をトランザクション・ログからリカバリできます。
次の例では、SQL Anywhere サンプル・データベースの Departments テーブルにデータが追加されます。
インポート先テーブルが存在することを確認します。
INSERT 文を実行します。次に例を示します。
次の例では、SQL Anywhere サンプル・データベースの Departments テーブルに新しいローを挿入します。
INSERT INTO Departments ( DepartmentID, DepartmentName, DepartmentHeadID ) VALUES ( 700, 'Training', 501) SELECT * FROM Departments; |
値を挿入すると、新しいデータが既存のテーブルに追加されます。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |