ошибка MySQL; Код ошибки: 1136. Количество столбцов не соответствует значению в строке 1 - PullRequest
0 голосов
/ 04 ноября 2018

Я только изучаю MySQL и пытался создать базовую таблицу. Но я получаю эту ошибку; Код ошибки: 1136. Количество столбцов не соответствует значению в строке 1.

use mydb ;
lock table user write;
insert into user(username,password,email,created,last_updated) values (
    ('TEST USERNAME','TEST PASSWORD','Test@test.com',current_timestamp(),current_timestamp()), 
    ('TEST USERNAME 2','TEST PASSWORD 2','Test2@test.com',current_timestamp(),current_timestamp())

);
unlock tables;

Столбцы в таблице (id, имя пользователя, пароль, адрес электронной почты, созданы, last_updated). Спасибо.

Ответы [ 2 ]

0 голосов
/ 31 июля 2019

у ваших столбцов в таблице есть идентификатор, но у вас его нет, когда вы пишете

insert into user(username,password,email,created,last_updated)

вы должны написать

insert into user(id,username,password,email,created,last_updated)
0 голосов
/ 04 ноября 2018

Снимите скобки для Values(..), , т.е. , вместо него должно быть Values (..), (..).

insert into user(username,password,email,created,last_updated) 
values
('TEST USERNAME','TEST PASSWORD','Test@test.com',current_timestamp(),current_timestamp()), 
('TEST USERNAME 2','TEST PASSWORD 2','Test2@test.com',current_timestamp(),current_timestamp());

С Документы , синтаксис:

INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]
    [INTO] tbl_name
    [PARTITION (partition_name [, partition_name] ...)]
    [(col_name [, col_name] ...)]
    {VALUES | VALUE} (value_list) [, (value_list)] ...
    [ON DUPLICATE KEY UPDATE assignment_list]

...

Операторы INSERT, использующие синтаксис VALUES, могут вставлять несколько строк. к сделать это, включить несколько списков значений столбцов, разделенных запятыми, с списки заключены в круглые скобки и разделены запятыми. Пример:

INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);
...