3

我们有一个 MySQL 5.7 服务器,我们需要在非严格模式下拥有它,因为一些遗留数据库需要它。但是,在我们最新的应用程序中,我们希望数据库强制执行严格性(尤其是NO_ZERO_DATE)。有没有办法在数据库级别覆盖服务器级别的配置?

4

1 回答 1

1

您可以通过会话更改 SQL 模式:

SET SESSION sql_mode = 'modes';

根据文档

设置 SESSION 变量仅影响当前客户端。

这可能是解决您的问题的解决方法。我认为没有直接的方法可以通过数据库设置 SQL 模式。

另请注意:

重要的

SQL 模式和用户定义的分区。在创建并将数据插入分区表后更改服务器 SQL 模式可能会导致此类表的行为发生重大变化,并可能导致数据丢失或损坏。强烈建议您在使用用户定义的分区创建表后永远不要更改 SQL 模式。

也许更安全的方法是使用两个 MySQL 服务器实例。

于 2017-02-14T17:02:27.437 回答