关闭STRICT_TRANS_TABLES对我来说安全吗?

6

自2014年以来,我托管在外部站点上的PHP/mySQL后端一直运行良好。最近,它开始抛出“字段没有默认值”的错误。

我检查了配置,并发现STRICT_TRANS_TABLES,在某些情况下对没有默认值的字段会产生这些错误。

我的问题是是否安全为我删除此配置值。它是mySQL 5.5.5-10.3.12-MariaDB。

或者我可以为所有内容提供默认值,但我不知道哪种解决方案更有可能导致现有代码库停止正常工作。

1个回答

11
我鼓励在MySQL中使用严格模式,因为如果禁用严格模式,则可能会导致一些不必要的影响,例如:
  • 如果您将值插入到无法适合的列中,则该值会被默默地截断。例如,在较短的varchar列中插入长字符串,或在INT列中插入大整数。这可能会导致您的数据库中出现虚假值。我更喜欢这些情况是错误的,以防止出现此类虚假值。

  • 非严格模式允许无意义的日期,例如0000-00-00。日历中没有这样的日期。我宁愿不允许出现这个值。如果我需要表示缺少值,我会使用NULL。

这些情况会影响您的应用程序吗?我或Stack Overflow上的任何其他人都无法预测。您需要自己进行测试。


1
这些情况会影响您的应用程序吗?我或Stack Overflow上的任何其他人都无法预测。绝对没错。您的回答正是我要找的。谢谢! - Almo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接