sql >> Databasteknik >  >> RDS >> Mysql

Hur man lägger till ett alternativ till sql_mode i MySQL utan att förlora befintliga inställningar

Här är ett snabbt sätt att lägga till ett alternativ till ditt sql_mode utan att radera alla befintliga alternativ.

Anta att vi vill lägga till PIPES_AS_CONCAT till vårt befintliga sql_mode .

Vi skulle kunna göra detta:

SET sql_mode=(SELECT CONCAT(@@sql_mode,',PIPES_AS_CONCAT'));

Det lägger till PIPES_AS_CONCAT utan att torka våra befintliga inställningar.

Exempel

Bara för att vara tydlig, här är vad mitt sql_mode ser ut som före kör ovanstående kod:

SELECT @@sql_mode;

Resultat:

ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

Vi kan se den PIPES_AS_CONCAT finns ingenstans.

Låt oss nu lägga till PIPES_AS_CONCAT till vårt sql_mode och sedan igen:

SET sql_mode=(SELECT CONCAT(@@sql_mode,',PIPES_AS_CONCAT'));
SELECT @@sql_mode;

Resultat:

PIPES_AS_CONCAT,ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

Den har nu lagts till. Men viktigast av allt, inget av de andra alternativen har gått förlorade.


  1. CAST(DATETIME AS DATE) över WHERE-satsen

  2. Hur man beställer efter antal i SQL?

  3. Hur implementerar man en många-till-många-relation i PostgreSQL?

  4. Aggregat och partitionering