Is it possible to turn off strict SQL mode in RDS for MySQL v8.0?

0

Is it possible to turn off strict SQL mode in RDS for MySQL v8.0? I noticed it has a fixed value of STRICT_TRANS_TABLES even though the parameter sql_mode is only set on NO_ENGINE_SUBSTITUTION

I'm asking because MySQL already deprecated NO_ZERO_DATE, NO_ZERO_IN_DATE and announced that in the future they will be merged into strict mode which potentially could break our applications.

profile picture
gefragt vor einem Jahr2448 Aufrufe
1 Antwort
0
Akzeptierte Antwort

Strict mode is OFF by default on RDS MySQL 8, we have sql_mode=NO_ENGINE_SUBSTITUTION only. As long as you do not add any of STRICT_TRANS_TABLES (when merged) or NO_ZERO_DATE or NO_ZERO_IN_DATE in your sql_mode, it should not break your application in the future.

We recommend however to use strict mode when possible to avoid subtle data inconsistencies in the future.

AWS
beantwortet vor einem Jahr
  • But when I run against the instance: "show variables like 'sql_mode'"

    I get the value: "STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION"

    even though in the param group only the value NO_ENGINE_SUBSTITUTION was defined

  • You might be looking at your session variables. Does executing these queries show differences?

    SELECT @@session.sql_mode;
    SELECT @@global.sql_mode;
    

    If they do differ, then your client connection may be setting a custom SQL mode during connection. You will need to make sure your application does not do the same.

  • Thanks, indeed my JDBC client added it on session start. I solved it by setting the "jdbcCompliantTruncation" key to "false" in the driver properties.

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen