我们有一个 MySQL 5.7 服务器,我们需要在非严格模式下拥有它,因为一些遗留数据库需要它。但是,在我们最新的应用程序中,我们希望数据库强制执行严格性(尤其是NO_ZERO_DATE
)。有没有办法在数据库级别覆盖服务器级别的配置?
问问题
1596 次
1 回答
1
您可以通过会话更改 SQL 模式:
SET SESSION sql_mode = 'modes';
根据文档:
设置 SESSION 变量仅影响当前客户端。
这可能是解决您的问题的解决方法。我认为没有直接的方法可以通过数据库设置 SQL 模式。
另请注意:
重要的
SQL 模式和用户定义的分区。在创建并将数据插入分区表后更改服务器 SQL 模式可能会导致此类表的行为发生重大变化,并可能导致数据丢失或损坏。强烈建议您在使用用户定义的分区创建表后永远不要更改 SQL 模式。
也许更安全的方法是使用两个 MySQL 服务器实例。
于 2017-02-14T17:02:27.437 回答