Affichage des articles dont le libellé est mysql. Afficher tous les articles
Affichage des articles dont le libellé est mysql. Afficher tous les articles

vendredi 24 février 2023

mysql, initialisation colonne en fonction du résultat du tri d'une autre colonne

Le script suivant ajoute deux valeurs (cases à cocher sur IHM). Il réordonne les valeurs (sortKey utilisé par l'applicatif pour l'ordre des cases à cocher) en utilisant le tri alphabétique sur label et place NULL (valeur particulière) en dernier.

jeudi 12 novembre 2020

mysql, données binaires

Dans certains cas, la commande LOAD_FILE n'est pas utilisable (problèmes de droits, etc..) pour alimenter un blob.

Dans ce cas, il peut être intéressant de convertir un fichier binaire (ici un fichier texte) en séquence hexadécimale...


et utiliser cette séquence hexadécimale pour faire sa requête mysql.

On utilisera alors la commande UNHEX pour décoder la séquence hexadécimale et la remettre en binaire dans la requête SQL.



Le xxd -p permet de ne sortir que l'hexa sur la sortie standard tandis que le tr -d '\n concatène les lignes.

mercredi 14 octobre 2020

MySQL : ERROR 1215 (HY000): Cannot add foreign key constraint

Echec de l'import du dump. Ajouter en haut du script :

mercredi 20 mai 2020

mysql, LOAD_FILE renvoie NULL

La méthode LOAD_FILE renvoie toujours NULL

Je suis tombé sur cette page :

https://stackoverflow.com/questions/18069054/mysql-load-file-loads-null-values

Dans mon cas, la solution est :

https://stackoverflow.com/a/51301002/3550759

samedi 25 avril 2020

vendredi 6 décembre 2013

mysql, supprimer une base/table même lorsque des clés étrangères sont positionnées

Pour ignorer la vérification de la présence de clés étrangères lors de la suppression d'une table ou base, on peut utiliser "SET foreign_key_checks = 0" avec mysql comme dans l'exemple ci-dessous :

jeudi 14 mars 2013

mysql, dumper seulement les données



mysqldump -u root dbname --no-create-info --skip-triggers --compact --complete-insert --skip-extended-insert

jeudi 22 novembre 2012

mysql, regexp

Pour comptabiliser avec une regexp les numéros appelant valides (non masqués)



select count distinct REGEXP

vendredi 12 octobre 2012

sql, gérer les conflits lors des inserts

Lors d'un insert, si la clé primaire existe déjà, il est possible de faire un traitement comme dans l'exemple ci-dessous.



Ici, on tente de peupler la table enveloppesTTS avec des valeurs.

Si l'entrée n'existe pas, on la crée.

Sinon on met à jour un champ de cette table uniquement si sa valeur n'est pas déjà renseigné.

mysql, on duplicate key, insert into, values, select, if, tts

jeudi 11 octobre 2012

awk, créer des requêtes SQL depuis un fichier csv

Par exemple :



awk, fs, insert into table

mardi 7 août 2012

mysql, n'afficher que les vraies tables

Lorsque l'on utilise plusieurs bases de données, il arrive que l'on crée des vues d'une base vers une autre base...

La commande "show tables" n'est pas suffisante pour distinguer les tables des vues...
Mais voilà, on peut associer l'option full et compléter d'un where pour récupérer ce que l'on souhaite :

mysql> show full tables where Table_type='BASE TABLE';
où Table_type peut être :
  • BASE TABLE
  • VIEW

lundi 16 juillet 2012

mysql, importer un fichier csv

Pour charger un fichier csv dans une table on peut utiliser la commande suivante :

mysql> load data infile '/path/to/file.csv' into table mytable character 
set 'utf8' fields terminated by ';' IGNORE 1 lines;
Query OK, 786 rows affected (0.13 sec)
Records: 786  Deleted: 0  Skipped: 0  Warnings: 0
Ici, le charset est spécifié et la première ligne du fichier CSV est ignorée (titre des colonnes).

mardi 26 juin 2012

mysql, export d'une table au format csv

Il est possible d'exporter le contenu d'une table dans un fichier via une requête mysql. Voici la syntaxe :
SELECT champ1,champ2 FROM matable INTO OUTFILE 'lefichier.csv' 
FIELDS TERMINATED BY ';' OPTIONALLY ENCLOSED BY '"';

vendredi 4 mai 2012

mysqlimport

Le fichier doit porter le nom de la table à l'extension près. Ici les options utilisées sont :
  • --delete pour vider la table avant l'import
  • --fields-terminated-by pour le séparateur entre les champs
  • --lines-terminated-by pour le caractère de fin de ligne (ici DOS/WINDOWS)

mysqlimport 
--fields-terminated-by=\; 
--lines-terminated-by="\\r\\n" 
-v 
--delete 
-utest -ptest -hlocalhost BASE TABLE.csv

jeudi 15 mars 2012

Mysqldump : un insert par tuple...

mysqldump --skip-extended-insert ...


génère un INSERT par ligne de la table.

jeudi 1 décembre 2011

Droits sql...

Pour générer les commandes SQL adéquates pour 3 types d'utilisateurs de la BD avec les grant mysql qui vont bien.
grant insert select on mysql user privileges flush

mercredi 31 août 2011

Mysql: afficher requête en ligne

select * from flashes\G
*************************** 1. row ***************************
id: 1
etape: BRANCHE_MOTIF
dateCreation: 2011-08-29 14:27:45
dateDebut: 2011-08-04 00:00:00
dateFin: NULL
active: oui
*************************** 2. row ***************************
id: 2
etape: AC
dateCreation: 2011-08-29 14:43:22
dateDebut: 2011-08-03 00:00:00
dateFin: NULL
active: oui
*************************** 3. row ***************************
id: 3
etape: BRANCHE_MOTIF
dateCreation: 2011-08-29 14:46:28
dateDebut: 2011-08-05 00:00:00
dateFin: NULL
active: oui

mercredi 21 octobre 2009

Mysql

mysql> create database 3900_test;
Query OK, 1 row affected (0,00 sec)

mysql> grant all privileges on 3900_test.* to 'test'@'localhost' identified by 'test';
Query OK, 0 rows affected (0,00 sec)