我正在学习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,用户名,密码,电子邮件,创建的,最后更新的)。谢谢。
答案 0 :(得分:2)
去掉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]
在Docs中,语法为:
INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);
...
使用VALUES语法的INSERT语句可以插入多行。至 为此,请包括多个以逗号分隔的列值的列表, 列表括在括号内并用逗号分隔。示例:
{{1}}
答案 1 :(得分:0)
您表中的列具有ID,但编写时却没有ID
insert into user(username,password,email,created,last_updated)
您应该写
insert into user(id,username,password,email,created,last_updated)