すべてのプロダクト
Search
ドキュメントセンター

AnalyticDB:DMLを使用してデータを挿入、更新、削除する

最終更新日:Sep 29, 2024

このトピックでは、DMLを使用してAnalyticDB for PostgreSQLのデータを挿入、更新、および削除する方法について説明します。

データの挿入

説明

大量のデータを挿入する場合は、insertステートメントよりも優れたパフォーマンスを得るために、外部テーブルを使用するか、COPYステートメントを実行することをお勧めします。

INSERT文を実行して、1つ以上の行をテーブルに挿入できます。 構文:

INSERT INTO table [( column [, ...] )]
   {DEFAULT VALUES | VALUES ( {expression | DEFAULT} [, ...] ) 
   [, ...] | query}

次のステートメントを実行して、テーブルに行を挿入します。

INSERT INTO products (name, price, product_no) VALUES ('Cheese', 9.99, 1);

次のステートメントを実行して、テーブルに複数の行を挿入します。

INSERT INTO products (product_no, name, price) VALUES
    (1, 'Cheese', 9.99),
    (2, 'Bread', 1.99),
    (3, 'Milk', 2.99);

次のステートメントを実行して、スカラー式を使用してテーブルにデータを挿入します。

INSERT INTO films SELECT * FROM tmp_films WHERE date_prod < 
'2016-05-07';

データの更新

UPDATEステートメントを実行して、テーブル内の1つ以上の行を更新できます。 構文:

UPDATE [ONLY] table [[AS] alias]
   SET {column = {expression | DEFAULT} |
   (column [, ...]) = ({expression | DEFAULT} [, ...])} [, ...]
   [FROM fromlist]
   [WHERE condition | WHERE CURRENT OF cursor_name ]

制約条件

  • 配布キーとして定義されている列は更新できません。

  • パーティションキーとして定義されている列は更新できません。

  • STABLEおよびVOLATILE機能は使用できません。

  • RETURNING句は使用できません。

次のステートメントを実行して、price列の値が5から10の行を変更します。

UPDATE products SET price = 10 WHERE price = 5;

データの削除

DELETEステートメントを実行して、テーブルから1つ以上の行を削除できます。 構文:

DELETE FROM [ONLY] table [[AS] alias]
      [USING usinglist]
      [WHERE condition | WHERE CURRENT OF cursor_name ]

制約条件

  • STABLEおよびVOLATILE機能は使用できません。

  • RETURNING句は使用できません。

次のステートメントを実行して、price列の値が10であるすべての行を削除します。

DELETE FROM products WHERE price = 10;

次の文を実行して、テーブルからすべての行を削除します。

DELETE FROM products;

データの切り捨て

TRUNCATEステートメントを実行すると、テーブルからすべての行をすばやく削除できます。 truncate操作では、テーブルがスキャンされず、テーブル内の行のみが切り捨てられるため、テーブルおよびON DELETE句の書き換えルールから継承されたテーブルは切り捨てられません。 構文:

TRUNCATE [TABLE] name [, ...] [CASCADE | RESTRICT]

次のステートメントを実行して、mytableという名前のテーブルからすべての行を削除します。

TRUNCATE mytable;