Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente | |||
basededonnees:mysql [22/03/2017 17:12] julp [Comment supprimer une option au sql_mode ?] |
basededonnees:mysql [22/03/2017 17:19] (Version actuelle) julp |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ====== Convertir une colonne timestamp Unix en DATETIME ====== | ||
+ | |||
+ | <code sql> | ||
+ | UPDATE sujet SET tmpswap = FROM_UNIXTIME(ancien); | ||
+ | ALTER TABLE sujet DROP ancien; | ||
+ | ALTER TABLE sujet CHANGE tmpswap ancien DATETIME;</ | ||
+ | (sujet : nom de la table ; ancien : nom de la colonne initialement en (big)int) | ||
+ | |||
+ | ====== Convertir une colonne VARCHAR pour dates au format fr (d/m/Y) en DATE ====== | ||
+ | |||
+ | <code sql> | ||
+ | UPDATE sujet SET tmpswap = STR_TO_DATE(ancien, | ||
+ | ALTER TABLE sujet DROP ancien; | ||
+ | ALTER TABLE sujet CHANGE tmpswap ancien DATE;</ | ||
+ | (sujet : nom de la table ; ancien : nom de la colonne initialement en varchar) | ||
+ | |||
+ | Pourquoi utiliser le type DATE ? | ||
+ | * pour simplifier toute manipulation sur les dates : vous pouvez ainsi nativement utiliser toutes les fonctions date du SGBD sans avoir à d' | ||
+ | * le format interne (us) prévu permet nativement un tri (lexicographique) correct | ||
+ | * le formatage au format fr (ou autres) ne justifie pas une colonne en VARCHAR : tous les langages ou même les SGBD (DATE_FORMAT pour MySQL) permettent facilement la conversion. Et quid du jour où votre site devra être internationalisé ? | ||
+ | * le SGBD s' | ||
+ | |||
+ | ====== Mapper des valeurs en d' | ||
+ | |||
+ | On peut aisément remplacer un CASE comme celui-ci : | ||
+ | <code sql> | ||
+ | WHEN ' | ||
+ | WHEN ' | ||
+ | WHEN ' | ||
+ | ELSE ' | ||
+ | END;</ | ||
+ | Par : | ||
+ | <code sql> | ||
+ | ELT( | ||
+ | FIELD(< | ||
+ | 'Fiche Technique', | ||
+ | ), | ||
+ | ' | ||
+ | )</ | ||
+ | C'est l'" | ||
+ | <code php>$out = str_replace(array(' | ||
+ | # ou, mieux : | ||
+ | $out = [' | ||
+ | Par contre : ça revient éventuellement à " | ||
+ | |||
+ | ====== Désactiver (temporairement) les clés étrangères ====== | ||
+ | |||
+ | <code sql>SET FOREIGN_KEY_CHECKS=0; | ||
+ | |||
+ | -- les différentes opérations sql à exécuter en ignorant les clés étrangères | ||
+ | |||
+ | SET FOREIGN_KEY_CHECKS=1;</ | ||
+ | |||
+ | ====== Les timezones et comment régler l' | ||
+ | |||
+ | Déplacé sur [[http:// | ||
+ | |||
+ | ====== Optimisation : éviter des SELECT inutiles ====== | ||
+ | |||
+ | Déplacé sur [[http:// | ||