Tüm Ürünler
Search
Belge Merkezi

AnalyticDB:INSERT INTO

Son Güncelleme:Oct 05, 2026

Bir tabloya satır ekler. AnalyticDB for MySQL'de INSERT INTO ifadesi INSERT IGNORE INTO gibi çalışır: Eklenen bir satırın birincil anahtarı mevcut bir satırla aynıysa çakışan satır üzerine yazılmaz, sessizce yok sayılır.

Sözdizimi

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

Parametreler

Parametre Zorunlu Açıklama
IGNORE Hayır Birincil anahtarı mevcut bir satırla aynı olan satırları atlar.
column_name Hayır Hedef sütunun adı.
query — Sonuçları tabloya eklenen bir SELECT deyimidir.

Kullanım notları

Sütun adlarını belirtmezseniz VALUES listenizdeki değerlerin sırası, CREATE TABLE deyimiyle tanımlanan sütun sırasıyla aynı olmalıdır.

Örnekler

Aşağıdaki örneklerde aşağıda gösterildiği şekilde tanımlanan customer ve courses tabloları kullanılmaktadır.

CREATE TABLE customer (
  customer_id bigint NOT NULL COMMENT 'Customer ID',
  customer_name varchar NOT NULL COMMENT 'Customer name',
  phone_num bigint NOT NULL COMMENT 'Phone number',
  city_name varchar NOT NULL COMMENT 'City',
  sex int NOT NULL COMMENT 'Gender',
  id_number varchar NOT NULL COMMENT 'ID card number',
  home_address varchar NOT NULL COMMENT 'Home address',
  office_address varchar NOT NULL COMMENT 'Office address',
  age int NOT NULL COMMENT 'Age',
  login_time timestamp NOT NULL COMMENT 'Logon time',
  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 'Customer information table';
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);

Açık sütun adlarıyla tek bir satır ekleme

Ekleme sırasının tablo tanımından bağımsız olması için her sütun adını belirtin.

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');

Sütun adları olmadan tek bir satır ekleme

Değer sırası CREATE TABLE tanımıyla tam olarak eşleşiyorsa sütun adlarını atlayabilirsiniz.

INSERT INTO customer
VALUES
  (002367, 'Alan', '13900001234', 'Hangzhou', 0, '987300', 'West Lake', 'Cloud Town', 23, '2018-03-02 10:00:00');

Birden çok satır ekleme

Gidiş-dönüş trafiğini azaltmak için birden çok satırı tek bir deyimde gruplayın.

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');

Sütun adları belirtilmeden birden çok satır ekleme

Değer sırası CREATE TABLE tanımıyla tam olarak eşleştiğinde birden çok satır için sütun adlarını atlayabilirsiniz.

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');

Yineleyen anahtar durumunda mevcut satırı güncelleme

ON DUPLICATE KEY UPDATE ifadesi, eklenen satır mevcut bir birincil anahtarla çakıştığında çakışmayı yok saymak yerine belirli bir sütunu günceller.

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;
AnalyticDB for MySQL'de varsayılan INSERT INTO davranışı INSERT IGNORE INTO ile eşdeğerdir. ON DUPLICATE KEY UPDATE bu davranışı geçersiz kılar ve çakışmayı yok saymak yerine güncelleme yapar.

Zaman damgası sütunu içeren bir satır ekleme

Ekleme anındaki geçerli zaman damgasını kaydetmek için NOW() işlevini kullanın.

INSERT INTO courses (name, submission_date)
VALUES ('Jams', NOW());

Sorgu sonucundan satır ekleme

Veri kaynağı olarak bir SELECT deyimi kullanın. Sözdizimi ve örnekler için bkz. INSERT SELECT FROM.

Sonraki adımlar

  • INSERT SELECT FROM — başka bir tablodan sorgu sonuçlarını ekleme

  • CREATE TABLE — tablo şemasını, dağıtım anahtarlarını ve bölümleri tanımlama