尝试在 MySQL 中创建具有默认值的 TEXT 列时,出现错误Windows 平台。然而,Linux和其他版本仅发出警告。这种不一致让众多用户感到困惑,并引发了对其根本原因的猜测。
根据 MySQL Bugtracker 中的一个线程,TEXT 列缺乏默认值并不被视为错误。但是,跨平台的行为差异可能会导致兼容性问题。 MySQL 开发人员 Bryce Nesbitt 指出,这种不一致源于 Windows 和其他平台之间不同的严格级别。
在 Windows 上,“no DEFAULT”规则被作为错误强制执行,而在其他平台上,它会被强制执行。通常被视为警告。当在宽松平台上编写的代码随后在严格平台上运行时,这种差异可能会导致问题。
为了缓解此问题,开发人员可以通过修改 /my.ini 配置文件在 Windows 上的 MySQL 5 中禁用严格模式。这涉及用“sql_mode='MYSQL40'”替换严格模式设置并重新启动 MySQL 服务。此外,root/admin 用户可以执行以下查询来全局禁用严格模式:
mysql_query("SET @@global.sql_mode='MYSQL40'");
以上是为什么 MySQL TEXT 列在某些平台上缺少默认值?的详细内容。更多信息请关注PHP中文网其他相关文章!