Looking for mysql Answers? Try Ask4KnowledgeBase
Looking for mysql Keywords? Try Ask4Keywords

MySQLインサート


構文

  1. INSERT [LOW_PRIORITY |遅れて| [(パーティション名、...)] [(col_name、...)] {VALUES | VALUE}({expr | DEFAULT}、...)、...(...)、... [重複キー更新ではcol_name = expr [、col_name = expr] ...]

  2. INSERT [LOW_PRIORITY |遅れて| HIGH_PRIORITY] [IGNORE] [INTO] tbl_name [PARTITION(パーティション名、...)] SET col_name = {expr | DEFAULT}、... [重複キー更新ではcol_name = expr [、col_name = expr] ...]

  3. INSERT [LOW_PRIORITY | (col_name、...)] SELECT ... [重複キー更新時にcol_name = expr [、col_name = expr] ...]

  4. 式exprは、値リストで先に設定された列を参照できます。たとえば、col2の値が以前に割り当てられていたcol1を参照するため、これを行うことができます。
    INSERT INTO tbl_name(col1、col2)VALUES(15、col1 * 2);

  5. VALUES構文を使用するINSERTステートメントは、複数の行を挿入できます。これを行うには、括弧で囲まれカンマで区切られた複数の列値のリストを含めます。例:
    INSERT INTO tbl_name(a、b、c)VALUES(1,2,3)、(4,5,6)、(7,8,9);

  6. 各行の値リストは、かっこで囲む必要があります。リスト内の値の数が列名の数と一致しないため、次の文は無効です。
    INSERT INTO tbl_name(a、b、c)VALUES(1,2,3,4,5,6,7,8,9);

  7. INSERT ... SELECT構文
    INSERT [LOW_PRIORITY | [(col_name、...)] SELECT ... [重複キー更新時col_name = expr、...]

  8. INSERT ... SELECTを使用すると、1つまたは複数の表から多くの行を表にすばやく挿入できます。例えば:
    INSERT INTO tbl_temp2(fld_id)SELECT tbl_temp1.fld_order_id FROM tbl_temp1 WHERE tbl_temp1.fld_order_id> 100;

備考

インサート 関連する例