首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysql VALUES子句中的数据类型可以不同于列数据类型吗?

问mysql VALUES子句中的数据类型可以不同于列数据类型吗?
EN

Stack Overflow用户
提问于 2013-08-19 00:58:43
回答 1查看 78关注 0票数 0

大家好(注意,我有类似的主题和不同的问题),

我正在学习MySQL。我遇到了一些选择题。如果我怀疑答案是什么,或者不相信答案是正确的,我就开始搜索谷歌、stackoverflow和mysql网站。然而,对于一些人来说,我仍然不能确认正确的答案是什么。

问题:对还是错?“INSERT语句的values子句中指定的值的数量和数据类型必须与INTO子句中指定的相应值的数量和数据类型匹配”。

我认为这是一个有趣的问题,因为如果一个列被指定为VARCHAR,我可以使用一个int插入到其中。如果可能的话,我认为MySQL会强制转换您指定的内容。所以这将是错误的。举个例子:

代码语言:javascript
复制
CREATE TABLE a (name VARCHAR(1));
INSERT INTO a (1);
INSERT INTO a (1.1);

另一种方式也同样有效。创建一个INT列。即使插入字符串文字,MySQL仍然允许这样做。

如果你对这个问题/答案有任何意见,或者对我的任何评论,我很高兴听到!

提前谢谢你!

EN

回答 1

Stack Overflow用户

发布于 2013-08-19 01:06:14

正确的答案实际上取决于SQL模式,因为在STRICT mode中,如果数据类型错误,您将收到错误,而在其他模式中,MySQL将尽其所能(例如,如果您试图在int列中插入浮点数,将截断小数点后的所有内容)来执行查询,并且只会生成有关它所做的隐式强制转换的警告。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18301535

复制
相关文章

相似问题

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