J'entrepose ici mes découvertes linux, bash, python et java que je souhaite partager et mettre de côté...
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.
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.
mardi 3 novembre 2020
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
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
mysql, supprimer les "mysql: [Warning] Using a password on the command line interface can be insecure."
En bash une solution plus simple existe équivalente à la solution 3 :
vendredi 16 septembre 2016
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é.
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
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 :
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
*************************** 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)
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)
Inscription à :
Articles (Atom)