大家好(注意,我有类似的主题和不同的问题),
我正在学习MySQL。我遇到了一些选择题。如果我怀疑答案是什么,或者不相信答案是正确的,我就开始搜索谷歌、stackoverflow和mysql网站。然而,对于一些人来说,我仍然不能确认正确的答案是什么。
问题:对还是错?“INSERT语句的values子句中指定的值的数量和数据类型必须与INTO子句中指定的相应值的数量和数据类型匹配”。
我认为这是一个有趣的问题,因为如果一个列被指定为VARCHAR,我可以使用一个int插入到其中。如果可能的话,我认为MySQL会强制转换您指定的内容。所以这将是错误的。举个例子:
CREATE TABLE a (name VARCHAR(1));
INSERT INTO a (1);
INSERT INTO a (1.1);另一种方式也同样有效。创建一个INT列。即使插入字符串文字,MySQL仍然允许这样做。
如果你对这个问题/答案有任何意见,或者对我的任何评论,我很高兴听到!
提前谢谢你!
发布于 2013-08-19 01:06:14
正确的答案实际上取决于SQL模式,因为在STRICT mode中,如果数据类型错误,您将收到错误,而在其他模式中,MySQL将尽其所能(例如,如果您试图在int列中插入浮点数,将截断小数点后的所有内容)来执行查询,并且只会生成有关它所做的隐式强制转换的警告。
https://stackoverflow.com/questions/18301535
复制相似问题