Todos os produtos
Search
Central de documentação

AnalyticDB:INSERT INTO

Última atualização: Aug 20, 2026

Insere linhas em uma tabela. No AnalyticDB for MySQL, o comando INSERT INTO funciona como INSERT IGNORE INTO: se uma linha inserida tiver a mesma chave primária de uma linha existente, o sistema ignorará silenciosamente a linha conflitante em vez de sobrescrevê-la.

Sintaxe

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

Parâmetros

Parâmetro

Obrigatório

Descrição

IGNORE

Não

Ignora qualquer linha cuja chave primária duplique uma linha existente.

column_name

Não

Nome da coluna de destino.

query

—

Instrução SELECT cujos resultados são inseridos na tabela.

Observações de uso

Se você omitir os nomes das colunas, os valores na lista VALUES devem seguir a mesma ordem das colunas definidas na instrução CREATE TABLE.

Exemplos

Os exemplos a seguir usam duas tabelas — customer e courses — definidas conforme mostrado abaixo.

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

Inserir uma única linha com nomes explícitos de colunas

Especifique cada nome de coluna para tornar a ordem de inserção independente da definição da tabela.

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

Inserir uma única linha sem nomes de colunas

Omita os nomes das colunas quando a ordem dos valores corresponder exatamente à definição do CREATE TABLE.

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

Inserir várias linhas

Agrupe várias linhas em uma única instrução para reduzir idas e vindas ao banco de dados.

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

Inserir várias linhas sem especificar nomes de colunas

Se a ordem dos valores corresponder exatamente à definição do CREATE TABLE, omita os nomes das colunas em várias linhas.

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

Atualizar uma linha existente em caso de chave duplicada

A cláusula ON DUPLICATE KEY UPDATE atualiza uma coluna específica quando uma linha inserida entra em conflito com uma chave primária existente, em vez de ignorar o conflito.

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;
O comportamento padrão do INSERT INTO no AnalyticDB for MySQL equivale ao INSERT IGNORE INTO . O uso de ON DUPLICATE KEY UPDATE substitui esse comportamento e executa uma atualização em vez de ignorar o conflito.

Inserir uma linha com uma coluna de timestamp

Use NOW() para registrar o timestamp atual no momento da inserção.

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

Inserir linhas a partir do resultado de uma consulta

Use uma instrução SELECT como source de dados. Para sintaxe e exemplos, consulte INSERT SELECT FROM.

Próximos passos

  • INSERT SELECT FROM — insere resultados de consultas de outra tabela

  • CREATE TABLE — define o esquema da tabela, as chaves de distribuição e as partições