2016-07-20 8 views
0

Ich kann viele Informationen darüber finden, was strict-Modus in MySql und MariaDB tut, aber nichts darüber, wann es zu verwenden. Dies ist bis zu einem gewissen Grad ein gesunder Menschenverstand, aber ich möchte immer noch einige allgemeine Richtlinien haben. Zum Beispiel, vielleicht Sie:Wann strikte Modus in MySql oder MariaDB verwenden

  • Immer Strict-Modus
  • Niemals Strict-Modus
  • immer Strict-Modus auf Tabellen verwenden, die Finanzdaten
  • etc
+1

Sie möchten also, dass jemand diese Seite neu zusammenfasst? http://dev.mysql.com/doc/refman/5.7/en/sql-mode.html#sql-mode-strict – Drew

+2

Verwenden Sie immer strikten Modus. Das heißt, bis Sie seine Einschränkungen satt haben. Der Modus ist da, um Ihnen zu helfen, aber es kann schmerzhaft sein. –

+0

Danke Rick. Willst du das eine Antwort geben und ich werde es akzeptieren? –

Antwort

0

Zuerst von MySQL documentation haben :

Der strikte Modus steuert, wie MySQL ha Gibt ungültige oder fehlende Werte in Datenänderungsanweisungen wie INSERT oder UPDATE an. Ein Wert kann aus verschiedenen Gründen ungültig sein. Beispielsweise hat es möglicherweise den falschen Datentyp für die Spalte oder liegt möglicherweise außerhalb des zulässigen Bereichs. Ein Wert fehlt, wenn eine neue einzufügende Zeile keinen Wert für eine Nicht-NULL-Spalte enthält, die in ihrer Definition keine explizite DEFAULT-Klausel enthält. (Für eine NULL-Spalte wird NULL eingefügt, wenn der Wert fehlt.) Der strikte Modus wirkt sich auch auf DDL-Anweisungen wie CREATE TABLE aus.

So, wie @ rick-james sagte: Immer strikten Modus verwenden. Das heißt, bis Sie seine Einschränkungen satt haben. Der Modus ist da, um Ihnen zu helfen, aber es kann schmerzhaft sein.

Strengemodus ist auch default on MariaDB seit> 10.2.3.

  • Holen Sie sich aktuelle Modus: SHOW VARIABLES LIKE sql_mode";
  • Disable: mysql> SET sql_mode = '';
  • Enable: mysql> SET sql_mode = 'STRICT_ALL_TABLES'; (oder STRICT_TRANS_TABLES).

Für eine dauerhafte Änderung bearbeiten /etc/mysql/my.conf, [mysqld] Abschnitt, sql_mode= Variable.