Todos los productos
Search
Centro de documentos

:INSERT INTO

Última actualización: Sep 04, 2026

Inserta filas en una tabla. En AnalyticDB for MySQL, INSERT INTO funciona como INSERT IGNORE INTO: cuando una fila insertada comparte una clave primaria con una fila existente, la fila en conflicto se ignora silenciosamente en lugar de sobrescribirse.

Sintaxis

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

Parámetros

Parámetro

Obligatorio

Descripción

IGNORE

No

Omite cualquier fila cuya clave primaria duplique una fila existente.

column_name

No

El nombre de la columna de destino.

query

—

Una instrucción SELECT cuyos resultados se insertan en la tabla.

Notas de uso

Si omite los nombres de las columnas, los valores en su lista VALUES deben aparecer en el mismo orden que las columnas definidas en la instrucción CREATE TABLE.

Ejemplos

Los siguientes ejemplos utilizan dos tablas — customer y courses — definidas como se muestra a continuación.

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

Insertar una sola fila con nombres de columna explícitos

Especifique cada nombre de columna para que el orden de inserción sea independiente de la definición de la tabla.

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

Insertar una sola fila sin nombres de columna

Omita los nombres de las columnas cuando el orden de los valores coincida exactamente con la definición de CREATE TABLE.

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

Insertar varias filas

Agrupe varias filas en una sola instrucción para reducir los viajes de ida y vuelta.

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

Insertar varias filas sin especificar nombres de columna

Cuando el orden de los valores coincide exactamente con la definición de CREATE TABLE, puede omitir los nombres de las columnas en varias filas.

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

Actualizar una fila existente al duplicar la clave

ON DUPLICATE KEY UPDATE actualiza una columna específica cuando una fila insertada entra en conflicto con una clave primaria existente, en lugar de ignorar el conflicto.

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;
El comportamiento predeterminado de INSERT INTO en AnalyticDB for MySQL equivale a INSERT IGNORE INTO . ON DUPLICATE KEY UPDATE anula ese comportamiento y realiza una actualización en lugar de ignorar el conflicto.

Insertar una fila con una columna de marca de tiempo

Utilice NOW() para registrar la marca de tiempo actual al momento de la inserción.

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

Insertar filas desde el resultado de una consulta

Utilice una instrucción SELECT como origen de datos. Para consultar la sintaxis y los ejemplos, consulte INSERT SELECT FROM.

Pasos siguientes

  • INSERT SELECT FROM — insertar resultados de consulta desde otra tabla

  • CREATE TABLE — definir esquema de tabla, claves de distribución y particiones