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

AnalyticDB:INSERT INTO

最終更新日:Nov 07, 2025

INSERT INTO 文を使用して、テーブルにデータを挿入できます。AnalyticDB for MySQL では、INSERT INTO 文は INSERT IGNORE INTO のように動作します。挿入中にプライマリキーが重複した場合、競合する行は無視されます。

構文

INSERT [IGNORE] 
    INTO table_name 
    [( column_name [, ...] )]
    [VALUES]
    [(value_list[, ...])]
    [query];     

パラメーター

  • IGNORE: 重複するプライマリキー値を持つ行の挿入を無視します。このパラメーターはオプションです。

  • column_name: 列の名前です。このパラメーターはオプションです。

  • query: クエリ結果をテーブルに挿入できる SELECT 文です。

使用上の注意

列名を指定しない場合、挿入するデータの列は、CREATE TABLE 文で指定された列と同じ順序で配置する必要があります。

customer と courses という名前のテーブルを作成します。

CREATE TABLE customer (
  customer_id bigint NOT NULL COMMENT '顧客 ID',
  customer_name varchar NOT NULL COMMENT '顧客名',
  phone_num bigint NOT NULL COMMENT '電話番号',
  city_name varchar NOT NULL COMMENT '都市',
  sex int NOT NULL COMMENT '性別',
  id_number varchar NOT NULL COMMENT 'ID カード番号',
  home_address varchar NOT NULL COMMENT '自宅住所',
  office_address varchar NOT NULL COMMENT '勤務先住所',
  age int NOT NULL COMMENT '年齢',
  login_time timestamp NOT NULL COMMENT 'ログオン時間',
  PRIMARY KEY (login_time, customer_id, phone_num)
)
DISTRIBUTED BY HASH(customer_id)
PARTITION BY VALUE(DATE_FORMAT(login_time, '%Y%m%d')) LIFECYCLE 30
COMMENT '顧客情報テーブル';           
CREATE TABLE courses(
id bigint AUTO_INCREMENT PRIMARY KEY,
name varchar(20) NOT NULL,
grade varchar(20) default 'Grade 3',
submission_date timestamp
)
DISTRIBUTED BY HASH(id)          
  • customer テーブルに 1 行のデータを挿入します。

    INSERT INTO customer(customer_id,customer_name,phone_num,city_name,sex,id_number,home_address,office_address,age,login_time) 
    VALUES
    (002367,'Alan','13900001234','Hangzhou',0,'987300','West Lake','Cloud Town',23,'2018-03-02 10:00:00');                  
  • INSERT INTO ... ON DUPLICATE KEY UPDATE... 文を実行して、customer テーブルに 1 行のデータを挿入します。

    INSERT INTO customer 
    VALUES
    (002367,'Alan','13900001234','Hangzhou',0,'987300','West Lake','Cloud Town',23,'2018-03-02 10:00:00'); 
    ON DUPLICATE KEY
    UPDATE age=23;
  • customer テーブルに複数行のデータを挿入します。

    INSERT INTO  customer(customer_id,customer_name,phone_num,city_name,sex,id_number,home_address,office_address,age,login_time) 
    VALUES
    (002367,'Tom','13900001234','Hangzhou',0,'987300','West Lake','Cloud Town',23,'2018-03-02 10:00:00'),(002368,'Alex','13900001111','Hangzhou',0,'987300','West Lake','Cloud Town',28,'2018-08-01 11:00:00'),(002369,'Eric','13900002222','Hangzhou',1,'987300','West Lake','Cloud Town',35,'2018-09-12 08:11:00');                 
  • 列名を指定せずに、customer テーブルに複数のレコードを挿入します。

    INSERT INTO 
    customer VALUES
    (002367,'Tom','13900001234','Hangzhou',0,'987300','West Lake','Cloud Town',23,'2018-03-02 10:00:00'),(002368,'Alex','13900001111','Hangzhou',0,'987300','West Lake','Cloud Town',28,'2018-08-01 11:00:00'),(002369,'Eric','13900002222','Hangzhou',1,'987300','West Lake','Cloud Town',35,'2018-09-12 08:11:00');                
  • courses テーブルに 1 行のデータを挿入します。

    INSERT INTO courses (name,submission_date) VALUES("Jams",NOW());                
  • INSERT query の例については、「INSERT SELECT FROM」をご参照ください。