2017-02-14 7 views
2

レガシーデータベースの中には厳密ではないモードが必要な単一のMySQL 5.7サーバがあります。しかし、私たちの最新のアプリでは、データベースに厳密さ(特にNO_ZERO_DATE)を適用したいと考えています。データベースレベルでサーバーレベルの設定を上書きする方法はありますか? documentationによるとMySQLデータベースレベルでサーバーのSQLモードを上書きできますか?

SET SESSION sql_mode = 'modes'; 

答えて

1

あなたはとのセッションでSQLモードを変更することができます

SESSION変数を設定するだけで、現在のクライアントに影響します。

これは、問題を解決するための回避策です。データベースでSQLモードを直接設定する方法はないと思います。また

注:

重要

SQLモードとユーザー定義のパーティショニング。パーティション化されたテーブルにデータを作成して挿入した後にサーバーのSQLモードを変更すると、そのようなテーブルの動作が大きく変更される可能性があります。はデータの損失または破損につながる可能性があります。ユーザー定義のパーティション化を使用してテーブルを作成した後は、決してSQLモードを変更しないことを強くお勧めします。

もっと安全な方法は、MySQLサーバーの2つのインスタンスを使用することです。

+0

"より安全な方法は、MySQLサーバーの2つのインスタンスを使用することです。"ああ、それは確かに安全です。しかし、それはオプションだとは思わない – abeger

関連する問題