首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MySQL插入多个缺少某些值的行

MySQL插入多个缺少某些值的行
EN

Stack Overflow用户
提问于 2017-06-16 20:00:02
回答 3查看 1.5K关注 0票数 3

给定的

代码语言:javascript
运行
复制
INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);

是一个标准的插入表单,如果某些数据丢失了,如何插入多行?

例如:

代码语言:javascript
运行
复制
INSERT INTO tbl_name (a,b,c) VALUES(1,'missing','missing'),(4,'missing',6),(7,8,9);

请注意,表中可能包含“缺失”值的数据,并且不应使用"null“或其他方式覆盖。

EN

回答 3

Stack Overflow用户

发布于 2017-06-16 20:06:05

如果您想要在insert中省略该列的相同行为,请使用default

代码语言:javascript
运行
复制
INSERT INTO tbl VALUES (1,default,default),(4,default,6)...

如果您想要空值,只需使用null

代码语言:javascript
运行
复制
INSERT INTO tbl VALUES (1,null,null),(4,null,6)...
票数 2
EN

Stack Overflow用户

发布于 2017-06-16 20:03:09

在这种情况下,您可以插入null而不是missing

代码语言:javascript
运行
复制
INSERT INTO tbl_name (a,b,c) VALUES(1,null,null),(4,null,6),(7,8,9);

仅当目标字段可为空时,此解决方案才有效,否则将抛出错误

票数 0
EN

Stack Overflow用户

发布于 2017-06-16 21:01:41

首先,关于您指定的内容:

注意,表可能包含“缺失”值的数据,并且不应使用"null“或其他值覆盖它。

在这方面,如果只使用'INSERT‘语句,那么一些数据是否已经以某种形式存在并不重要,因为’INSERT‘语句插入(!)新记录,不更新记录。

更多的是:假设您有一个id列作为主键列。如果您尝试使用与现有记录相同的'id‘复制一个记录,则会出现错误:“INSERT key...”。

现在,假设id不是主键值。然后,当您尝试使用与现有记录相同的“id”插入新记录时,新记录将被插入为INSERT

也就是说,您可以使用UPDATE来更新现有记录。为了不覆盖现有的值,您可以在UPDATE语句中省略它们。

示例:包含列idfnamelname的表users

代码语言:javascript
运行
复制
id   fname   lname
1    John    Smith
2    Sam     Stevenson

UPDATE语句:

代码语言:javascript
运行
复制
UPDATE users
SET fname='Helen'
WHERE id = 2;

结果:

代码语言:javascript
运行
复制
id   fname   lname
1    John    Smith
2    Helen   Stevenson
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44588762

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档