mysql - error - el número de columnas de los datos csv en la línea 1 no es válido
El recuento de columnas no coincide con el recuento de valores en la fila 1 (4)
- te perdiste la coma entre dos valores o el nombre de la columna
- pone valores adicionales o un nombre de columna adicional
Entonces leo las otras publicaciones, pero esta pregunta es única. Entonces, este archivo de volcado de SQL tiene esto como la última entrada.
INSERT INTO `wp_posts` VALUES(2781, 3, ''2013-01-04 17:24:19'', ''2013-01-05 00:24:19''.
Estoy tratando de insertar este valor en la mesa ...
INSERT INTO `wp_posts` VALUES(5, 5, ''2005-04-11 09:54:35'', ''2005-04-11 17:54:35''
me da el error, "El recuento de columnas no coincide con el recuento de valores en la fila 1". Así que estoy perdido en el concepto de cómo la columna y la fila se aplican aquí.
¿No significa 2781,3
fila 2781 y la columna 3? ¿Y no significa 5,5
fila 5 y la columna 5?
El error significa que no está proporcionando tantos datos como la tabla wp_posts
contiene columnas. Y ahora el motor de DB no sabe en qué columnas colocar sus datos.
Para superar esto, debe proporcionar los nombres de las columnas que desea llenar. Ejemplo:
insert into wp_posts (column_name1, column_name2)
values (1, 3)
Busque la definición de la tabla y vea qué columnas desea completar.
Y insert
significa que está insertando un nuevo registro. No estás modificando uno existente. Use la update
para eso.
MySQL también informará que "El recuento de columnas no coincide con el recuento de valores en la fila 1" si intenta insertar varias filas sin delimitar los conjuntos de filas en la sección VALORES con paréntesis, como sigue:
INSERT INTO `receiving_table`
(id,
first_name,
last_name)
VALUES
(1002,''Charles'',''Babbage''),
(1003,''George'', ''Boole''),
(1001,''Donald'',''Chamberlin''),
(1004,''Alan'',''Turing''),
(1005,''My'',''Widenius'');
También debería ver los nuevos factores desencadenantes.
MySQL no muestra el nombre de la tabla en el error, por lo que realmente queda en una estacada. Aquí hay un ejemplo de trabajo:
use test;
create table blah (id int primary key AUTO_INCREMENT, data varchar(100));
create table audit_blah (audit_id int primary key AUTO_INCREMENT, action enum(''INSERT'',''UPDATE'',''DELETE''), id int, data varchar(100) null);
insert into audit_blah(action, id, data) values (''INSERT'', 1, ''a'');
select * from blah;
select * from audit_blah;
truncate table audit_blah;
delimiter //
/* I''ve commented out "id" below, so the insert fails with an ambiguous error: */
create trigger ai_blah after insert on blah for each row
begin
insert into audit_blah (action, /*id,*/ data) values (''INSERT'', /*NEW.id,*/ NEW.data);
end;//
/* This insert is valid, but you''ll get an exception from the trigger: */
insert into blah (data) values (''data1'');