gpt4 book ai didi

MySQL - 字段 没有默认值

转载 作者:行者123 更新时间:2023-11-28 23:45:51 28 4
gpt4 key购买 nike

我知道某个字段没有默认值。

我一直在使用 MySQL 5.5.28,只要我在该字段上没有指定值的情况下插入,它就可以正常工作。该字段为 TINYINT,默认情况下,在创建表期间未指定任何值且未声明默认值的情况下,将在 INSERT 语句期间将值 0 插入该字段。

但是,在更新到 MySQL 5.5.30 之后,查询不再有效并返回Field doesn't have a default value

我一直在查看变更日志,但没有发现任何关于 Integer 的默认值发生变化的线索。

MySQL 5.5.29:http://dev.mysql.com/doc/relnotes/mysql/5.5/en/news-5-5-29.html#mysqld-5-5-29-feature

MySQL 5.5.30:http://dev.mysql.com/doc/relnotes/mysql/5.5/en/news-5-5-30.html

测试查询:MyTable 具有字段 MyField1MyField2

INSERT INTO MyTable(MyField2)VALUES('MICHAEL');

MySQL 5.5.28 上的结果:

我的字段1 | 我的字段2
0 |迈克尔

有警告:1 行受影响,1 条警告:1364 字段“MyField1”没有默认值

MySQL 5.5.30 上的结果:

数据没有变化并抛出错误
错误代码:1364。字段“MyField1”没有默认值

INSERT INTO MyTable(MyField1, MyField2)VALUES(0, 'MICHAEL');

上面的查询仍然有效。

最佳答案

在第一个服务器中没有启用严格的 sql 模式,而在第二个服务器中启用了。阅读有关严格模式的更多信息 in the mysql documentation .

具体来说:

If strict mode is not in effect, MySQL inserts adjusted values for invalid or missing values and produces warnings (see Section 13.7.5.40, “SHOW WARNINGS Syntax”). In strict mode, you can produce this behavior by using INSERT IGNORE or UPDATE IGNORE.

关于MySQL - 字段 <myfield> 没有默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33603525/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com