Problème variable sql_mode ne veux pas changer
Bonjour à tous,
Je doit migrer une base de donné PGSQL qui autorise les types DATE et DATETIME NULL vers MySQL qui les autorise aussi mais en enlevant les modes NO_ZERO_DATE,NO_ZERO_IN_DATE et aussi (je croit) STRICT_TRANS_TAB qui sont des modes activés par defaut.
Je me connecte avec l'utilisateur root.
Voici la procédure que j'utilise :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
SELECT @@sql_mode;
// il me renvoie les modes par défault de mysql.
SET @@sql_mode = '';
SET GLOBAL sql_mode = '';
SET SESSION sql_mode = '';
// Pour la variable de tous ses modes (jusque la tout fonctionne à merveille)
SET @@sql_mode='ALLOW_INVALID_DATES, ERROR_FOR_DIVISION_BY_ZERO, TRADITIONAL, NO_AUTO_CREATE_USER, NO_ENGINE_SUBSTITUTION'
SET GLOBAL sql_mode = 'ALLOW_INVALID_DATES, ERROR_FOR_DIVISION_BY_ZERO, TRADITIONAL, NO_AUTO_CREATE_USER, NO_ENGINE_SUBSTITUTION';
SET SESSION sql_mode = 'ALLOW_INVALID_DATES, ERROR_FOR_DIVISION_BY_ZERO, TRADITIONAL, NO_AUTO_CREATE_USER, NO_ENGINE_SUBSTITUTION';
// Mise à jour de la variable sql_mode pour garder que les modes que j ai besoin.
// Puis quand je vérifie
SELECT @@sql_mode;
SELECT @@GLOBAL.sql_mode;
SELECT @@SESSION.sql_mode;
// Les trois requètes me renvoie le même résultat soit:
// ONLY_FULL_GROUP_BY, STRICT_TRANS_TABLES, NO_ZERO_IN_DATE, NO_ZERO_DATE, ERROR_FOR_DIVISION_BY_ZERO, NO_ENGINE_SUBSTITUTION, TRADITIONAL, NO_AUTO_CREATE_USER
// qui sont les modes actifs par default. |
En gros, a chaque fois mysql me remet la valeur par défaut de sql_mode.
Dans le fichier de conf de mysqld , j'ai aussi retiré la variable sql_mode.
J'ai pas mal cherché, j'ai vue qu'il y a plein der tutos dessus ainsi que la doc officielle de MySQL mais rien à faire.
J'ai l'impression de faire les bonnes manipes, mais il y a surement quelque chose que je n'est pas compris ou oublier.
Un petit coup de pouce ferai le plus grand bien.
Merci d'avance.