ajout de l'option -n
préparer l'implémentation de l'option -k
This commit is contained in:
parent
fdd8b382fb
commit
54b40ed68a
42
mysqlloadcsv
42
mysqlloadcsv
|
@ -15,13 +15,13 @@ fields est la liste des colonnes. Si cette valeur est spécifiée, il faudra
|
||||||
calculées à partir du fichier en entrée.
|
calculées à partir du fichier en entrée.
|
||||||
|
|
||||||
Dans les données en entrées, qui doivent être en UTF8, les conversions suivantes
|
Dans les données en entrées, qui doivent être en UTF8, les conversions suivantes
|
||||||
sont effectuées:
|
sont effectuées par MySQL:
|
||||||
|
|
||||||
\\0 --> NUL
|
\\0 --> <caractère NUL>
|
||||||
\\b --> backspace
|
\\b --> <backspace>
|
||||||
\\n --> newline
|
\\n --> <newline>
|
||||||
\\r --> carriage return
|
\\r --> <carriage return>
|
||||||
\\t --> tab
|
\\t --> <tab>
|
||||||
\\Z --> Ctrl+Z
|
\\Z --> Ctrl+Z
|
||||||
\\N --> NULL
|
\\N --> NULL
|
||||||
|
|
||||||
|
@ -60,7 +60,14 @@ OPTIONS
|
||||||
-s NBLINES
|
-s NBLINES
|
||||||
Nombre de lignes à sauter dans le fichier en entrée
|
Nombre de lignes à sauter dans le fichier en entrée
|
||||||
-T, --truncate
|
-T, --truncate
|
||||||
Vider la table avant d'effectuer le chargement"
|
Vider la table avant d'effectuer le chargement
|
||||||
|
-k, --update-key KEY
|
||||||
|
Au lieu de charger de nouvelles données, essayer de mettre à jour la
|
||||||
|
table avec les données du fichier CSV. KEY est le nom de la colonne qui
|
||||||
|
est utilisée comme clé. Toutes les autres colonnes sont les nouvelles
|
||||||
|
données à mettre à jour.
|
||||||
|
-n, --fake
|
||||||
|
Ne pas effectuer l'opération. Afficher simplement la commande SQL."
|
||||||
}
|
}
|
||||||
|
|
||||||
source "$(dirname "$0")/ulib/ulib" &&
|
source "$(dirname "$0")/ulib/ulib" &&
|
||||||
|
@ -76,6 +83,8 @@ profile=
|
||||||
input=
|
input=
|
||||||
skip_lines=
|
skip_lines=
|
||||||
truncate=
|
truncate=
|
||||||
|
update_key=
|
||||||
|
fake=
|
||||||
parse_opts "${PRETTYOPTS[@]}" \
|
parse_opts "${PRETTYOPTS[@]}" \
|
||||||
--help '$exit_with display_help' \
|
--help '$exit_with display_help' \
|
||||||
-h:,-H:,--host: host= \
|
-h:,-H:,--host: host= \
|
||||||
|
@ -86,8 +95,16 @@ parse_opts "${PRETTYOPTS[@]}" \
|
||||||
-f:,--input: input= \
|
-f:,--input: input= \
|
||||||
-s:,--skip-lines: skip_lines= \
|
-s:,--skip-lines: skip_lines= \
|
||||||
-T,--truncate truncate=1 \
|
-T,--truncate truncate=1 \
|
||||||
|
-k:,--update-key: update_key= \
|
||||||
|
-n,--fake fake=1 \
|
||||||
@ args -- "$@" && set -- "${args[@]}" || die "$args"
|
@ args -- "$@" && set -- "${args[@]}" || die "$args"
|
||||||
|
|
||||||
|
if [ -n "$update_key" ]; then
|
||||||
|
# update_key n'est pas encore implémenté
|
||||||
|
ewarn "L'option -k n'est pas encore implémentée. Activation de --fake pour éviter de perdre des données"
|
||||||
|
fake=1
|
||||||
|
fi
|
||||||
|
|
||||||
dbtable="$1"; shift
|
dbtable="$1"; shift
|
||||||
fields=()
|
fields=()
|
||||||
while [ "$#" -gt 0 -a "$1" != "--" ]; do
|
while [ "$#" -gt 0 -a "$1" != "--" ]; do
|
||||||
|
@ -154,4 +171,13 @@ mysqlargs=("${mysqlargs[@]}"
|
||||||
--local-infile=1
|
--local-infile=1
|
||||||
)
|
)
|
||||||
|
|
||||||
exec "$scriptdir/mysqlcsv" "${mysqlargs[@]}" "$@"
|
cmd=("$scriptdir/mysqlcsv" "${mysqlargs[@]}" "$@")
|
||||||
|
if [ -n "$fake" ]; then
|
||||||
|
echo "-- Requêtes SQL:"
|
||||||
|
[ -n "$truncate" ] && echo "$truncate"
|
||||||
|
echo "$loadcsv"
|
||||||
|
echo "-- Commande à lancer en ligne de commande pour importer la table dans MySQL:"
|
||||||
|
echo "-- $(quoted_args "${cmd[@]}")"
|
||||||
|
else
|
||||||
|
exec "${cmd[@]}"
|
||||||
|
fi
|
||||||
|
|
Loading…
Reference in New Issue