MySQL您可以在数据库级别覆盖服务器SQL模式吗?

时间:2017-02-14 16:58:16

标签: mysql sql-mode

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

1 个答案:

答案 0 :(得分:1)

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

SET SESSION sql_mode = 'modes';

根据documentation

  

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

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

另请注意:

  

重要

     

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

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