我一直在 SHELL 中研究 mysql,我正在尝试使用 INSERT INTO... 将值插入到表中。
ERROR 1136 (21S01): Column count doesn't match value count at row 1
我正在使用的表:
这就是我尝试插入值的方式:
INSERT INTO clients VALUES
('Maria Dolores Gomez','Maria Dolores.95983222J@random.names','1971-06-06','F',1,'2018-04-09 16:51:30'),
('Adrian Fernandez','Adrian.55818851J@random.names','1970-04-09','M',1,'2018-04-09 16:51:30'),
('Maria Luisa Marin','Maria Luisa.83726282A@random.names','1957-07-30','F',1,'2018-04-09 16:51:30'),
('Pedro Sanchez','Pedro.78522059J@random.names','1992-01-31','M',1,'2018-04-09 16:51:30');
最佳答案
您为 VALUES 子句数据集中的每条记录指定 6 个值,而表结构包含 8 个字段。
您必须指定 6 个字段,其值在您的查询中指定:
INSERT INTO clients (name, email, birthdate, gender, active, created_at)
VALUES
('Maria Dolores Gomez','Maria Dolores.95983222J@random.names','1971-06-06','F',1,'2018-04-09 16:51:30'),
('Adrian Fernandez','Adrian.55818851J@random.names','1970-04-09','M',1,'2018-04-09 16:51:30'),
('Maria Luisa Marin','Maria Luisa.83726282A@random.names','1957-07-30','F',1,'2018-04-09 16:51:30'),
('Pedro Sanchez','Pedro.78522059J@random.names','1992-01-31','M',1,'2018-04-09 16:51:30');
或者,您可以为 VALUES 子句中未列出的字段指定“占位符”值。自动增量为 NULL 或 DEFAULT,updated_at 为 DEFAULT:
INSERT INTO clients
VALUES
(NULL,'Maria Dolores Gomez','Maria Dolores.95983222J@random.names','1971-06-06','F',1,'2018-04-09 16:51:30',DEFAULT),
(NULL,'Adrian Fernandez','Adrian.55818851J@random.names','1970-04-09','M',1,'2018-04-09 16:51:30',DEFAULT),
(NULL,'Maria Luisa Marin','Maria Luisa.83726282A@random.names','1957-07-30','F',1,'2018-04-09 16:51:30',DEFAULT),
(NULL,'Pedro Sanchez','Pedro.78522059J@random.names','1992-01-31','M',1,'2018-04-09 16:51:30',DEFAULT);
附言。我更喜欢前一种方法。后者会受到任何表结构更改的影响,而如果您要更改表结构中的字段顺序或向其中添加 NULLable 字段,前者可能会保持不变。
关于mysql - 我无法使用 shell 将值插入到 mysql 表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59484086/