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:// | ||