禁用特定数据库的 mysql 严格模式

Disabling mysql strict mode to a specific database

我知道禁用 MySQL 严格模式是一种不好的做法。 但是由于某些原因,我需要禁用特定的数据库并且 我在 MySQL 服务器中有很多数据库 运行ning。 假设我运行下面的命令是root用户,会不会对其他数据库有影响?

SET GLOBAL sql_mode = 'NO_ENGINE_SUBSTITUTION'

因为其他数据库运行正在生产模式。

我可以只对特定数据库禁用 MySQL 严格模式吗?

不,您不能更改 GLOBAL 变量并将其仅应用于一个数据库。它始终适用于全球。

考虑是否可以更改一个数据库的变量,如果您要 运行 使用限定的 table 名称进行查询,查询 table架构边界?或者,如果您 运行 从受影响的架构中加入 tables 的查询和另一个不受影响的架构?

您可能希望使用的解决方法是在每个会话中设置 sql_mode,然后再执行需要自定义 sql 模式的查询。