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