Accéder au contenu principal

Transposer des dates avec SQL

Nous avons une table 'journal' dans MySQL qui a une colonne 'cdate' de type date et qui est une clé primaire.

Le but est de transposer toutes les valeurs de la colonne d'une année dans le future.

Si on réussi a trouver la requête pour effectuer la transposition, on peut se heurter à une problème de duplication de clé. 

Mais une solution consiste d'abord à désactiver les clé primaire, puis d’effectuer la transposition et enfin de rétablir les clé en nettoyant les doublons éventuellement générés par la transposition.


-- supprime les clefs primaires, -- sans cela le requete suivante peut entrainer des erreurs -- si le cacul produit des doublons DROP PRIMARY KEY; -- effectue la transposition et -- pourraient generer les doublons UPDATE journal SET cdate = DATE_ADD(cdate, INTERVAL 1 YEAR); -- defini les clé primaires -- en supprimant les doublons ALTER IGNORE TABLE journal ADD PRIMARY KEY (cdate)


De façon général, on adaptera l’intervalle de transposition à sa guise selon la syntaxe de MySQL, et on utilisera DATE_SUB au lieu de DATE_ADD pour transposer dans le passé.



Commentaires

Posts les plus consultés de ce blog

Gérer les requêtes USSD sur un MoDem avec les commandes AT

Introduction L'USSD (Universal Structured Service D) est un service des réseaux télécoms defini dans 3GPP TS 02.90 et dans 3GPP TS 23.090. Il permet à un terminal mobile d'effectuer des requetes ou une suite de requete à l'operateur. Il est courament utiliser pour consulter le solde. Dans ce tutoriel nous apprendrons à effectuer des requetes USSD depuis une connection serie avec une modem. Pré requis Pour utiliserons pour ce faire: un modem GSM (Huawei E1552) bien sur avec une carte SIM (AIRTEL Burkina) un ordinateur auquel sera connecte le modem un terminal (minicom) pour dialoger avec le modem depuis l'ordinateur perl, pour encoder et decoder les PDU Demarche Nous allons consulter le solde du compte de l'utilisateur. Pour l'opérateur courant il faut composer le code USSD *160#. connecter le modem Connectez le modem au port USB de l'ordinateur et retrouvez ses port series logiciels. Notre modem créé trois ports series (/dev/t...

Testing crossplane on Digital ocean

  Crossplane brings the management of external resources into kubernetes through kubernetes APIs. This can in some situations be an alternative to other IaC such as terraform.  In the example below, we will create a droplet on DO by applying a kubernetes manifest using kubectl. The exemple suppose the kubernetes cluster in which crossplane will be installed is already up. ```bash kubectl create namespace crossplane-system helm repo add crossplane-stable https://charts.crossplane.io/stable helm repo update # install crossplane helm install crossplane --namespace crossplane-system crossplane-stable/crossplane # install the upjet digital ocean provider cat << EOF | kubectl apply -f - apiVersion: pkg.crossplane.io/v1 kind: Provider metadata: name: provider-upjet-digitalocean spec: package: crossplane-contrib/provider-upjet-digitalocean:v0.3.0 EOF # create the upjet digital ocean provider secret kubectl apply -f - << EOF apiVersion: v1 kind: S...

Ajouter un dépôt dans linux

La méthode traditionnel consiste a éditer le fichier /etc/apt/sources.list . Mais il est possible avec la commande add-apt-repository, pour peu qu'elle soit installe dans votre système d'exploitation (eg Ubuntu, Linux Mint ...), de le faire plus facilement. voici la syntaxe: apt-add-repository 'deb uri distribution [component1] [component2] [...]'  ou apt-add-repository  ppa: