INSERT INTO table [ ( column [, ...] ) ] { VALUES ( expression [, ...] ) | SELECT query }
INSERT を使用して、テーブルに新しい行を挿入するこ とができます。1 度に 1 つの行を挿入することも、問い合わせの結果として 複数の行を挿入することもできます。対象リスト内のカラムはどのような順番 でも指定できます。対象リストに無いカラムには、全てデフォルト値が挿入さ れます。カラムにデフォルト値が宣言されていない場合は、デフォルト値が NULL であるものとします。各カラムの式が正確なデータ型で無い場合は、自 動的に型の強制が行なわれます。
テーブルに追加するためには、そのテーブルに INSERT 権限を持っていな ければいけません。同様に、WHERE 句で指定したテーブル全てについて SELECT 権限を持っていなければなりません。
films テーブルに 1 つの行を挿入します。
INSERT INTO films VALUES ('UA502','Bananas',105,'1971-07-13','Comedy',INTERVAL '82 minute');
2 番目の例では、date_prod カラムを省略していま す。そのため、そこにはデフォルト値 NULL が入ります。
INSERT INTO films (code, title, did, date_prod, kind) VALUES ('T_601', 'Yojimbo', 106, DATE '1961-06-16', 'Drama');
distributors テーブルに1つの行を挿入します。 name カラムだけが指定されていることに注目し て下さい。このため、did カラムにはそのデフォ ルト値が代入されることになります。
INSERT INTO distributors (name) VALUES ('British Lion');
tmp テーブルから films テーブルに複数の行を 挿入します。
INSERT INTO films SELECT * FROM tmp;
配列に挿入します。(配列に関するより詳細な情報については PostgreSQL ユーザガイド を参照して下さい。)
-- 三目並べ用の空の 3x3 のゲーム盤を作成します。 -- (以下の問い合わせは全て同じ属性board を作成します。) INSERT INTO tictactoe (game, board[1:3][1:3]) VALUES (1,'{{"","",""},{},{"",""}}'); INSERT INTO tictactoe (game, board[3][3]) VALUES (2,'{}'); INSERT INTO tictactoe (game, board) VALUES (3,'{{,,},{,,},{,,}}');