自2014年以来,我托管在外部站点上的PHP/mySQL后端一直运行良好。最近,它开始抛出“字段没有默认值”的错误。
我检查了配置,并发现STRICT_TRANS_TABLES
,在某些情况下对没有默认值的字段会产生这些错误。
我的问题是是否安全为我删除此配置值。它是mySQL 5.5.5-10.3.12-MariaDB。
或者我可以为所有内容提供默认值,但我不知道哪种解决方案更有可能导致现有代码库停止正常工作。
如果您将值插入到无法适合的列中,则该值会被默默地截断。例如,在较短的varchar列中插入长字符串,或在INT列中插入大整数。这可能会导致您的数据库中出现虚假值。我更喜欢这些情况是错误的,以防止出现此类虚假值。
非严格模式允许无意义的日期,例如0000-00-00。日历中没有这样的日期。我宁愿不允许出现这个值。如果我需要表示缺少值,我会使用NULL。
这些情况会影响您的应用程序吗?我或Stack Overflow上的任何其他人都无法预测。您需要自己进行测试。