INSERT文を使用すると、表に行を追加することができます。
INSERT構文について
INSERT [LOW_PRIORITY | DELAYED] [IGNORE]
[INTO] tbl_name [(col_name,...)]
VALUES ((expression | DEFAULT),...),(...),...
[ ON DUPLICATE KEY UPDATE col_name=expression, ... ]
INSERT [LOW_PRIORITY | DELAYED] [IGNORE]
[INTO] tbl_name [(col_name,...)]
SELECT ...
INSERT [LOW_PRIORITY | DELAYED] [IGNORE]
[INTO] tbl_name
SET col_name=(expression | DEFAULT), ...
[ ON DUPLICATE KEY UPDATE col_name=expression, ... ]
[LOW_PRIORITY | DELAYED] [IGNORE]は通常使うことは無いと思いますが紹介しておきます。
| オプション | 意味 |
|---|---|
| LOW_PRIORITY | 他のクライアントによるそのテーブルからの読み取りがなくなるまで、 INSERT の実行は遅らされます。 注意: LOW_PRIORITY では同時挿入が無効になるため、 このオプションは通常 MyISAM テーブルに対しては使用しない。 |
| DELAYED | レコードをバッファに挿入します。 サーバーは、テーブルが開放されるとまとめて挿入を開始します。 |
| IGNORE | INSERTに失敗してもエラーを返しません。 |
| ON DUPLICATE KEY UPDATE | PRIMARYまたはUNIQUEキーでの重複する値を持つレコードが挿入されると、 古いレコードのUPDATEが実行されます。 |
INSERT INTO テーブル名 (列名1[,列名2,...]) VALUES (値1[,値2,...]);
テーブルの全ての項目へ値を入れる場合は、列名を省略できます。 その場合、VALUESの値は、テーブルで定義された項目の順に並べます。
INSERT INTO テーブル名 (列名1[,列名2,...]) SELECT 列名1[,列名2,...] FROM テーブル名 [WHERE 条件式];
行を挿入される表の項目とSELECTで得られる項目の数と型が一致しなければなりません。