mysql - 我无法使用 shell 将值插入到 mysql 表中

标签 mysql shell

我一直在 SHELL 中研究 mysql,我正在尝试使用 INSERT INTO... 将值插入到表中。

ERROR 1136 (21S01): Column count doesn't match value count at row 1

我正在使用的表:

enter image description here

这就是我尝试插入值的方式:

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/

相关文章:

Mysql修改UNSIGNED属性为特定列

mysql - 将子排名添加到 SQL 结果

bash - 使用 awk 处理另一个文件时在一个文件中打印一列

php - 连接两个表时出现 "Message : Undefined Variable:query "错误 codeigniter mysql php

mysql - 需要帮助进行查询

c - 如何在C中将shell文件 "source"?

shell - Dockerfile : how to set env variable from file contents

linux - 在 shell 脚本中以 root 身份运行命令

mysql - 为什么MySQL InnoDB也为更新/删除操作获取间隙锁?

regex - 如何将 unicode 字符与 awk 的正则表达式正确匹配?