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.
|
||||
|
||||
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
|
||||
\\b --> backspace
|
||||
\\n --> newline
|
||||
\\r --> carriage return
|
||||
\\t --> tab
|
||||
\\0 --> <caractère NUL>
|
||||
\\b --> <backspace>
|
||||
\\n --> <newline>
|
||||
\\r --> <carriage return>
|
||||
\\t --> <tab>
|
||||
\\Z --> Ctrl+Z
|
||||
\\N --> NULL
|
||||
|
||||
|
@ -60,7 +60,14 @@ OPTIONS
|
|||
-s NBLINES
|
||||
Nombre de lignes à sauter dans le fichier en entrée
|
||||
-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" &&
|
||||
|
@ -76,6 +83,8 @@ profile=
|
|||
input=
|
||||
skip_lines=
|
||||
truncate=
|
||||
update_key=
|
||||
fake=
|
||||
parse_opts "${PRETTYOPTS[@]}" \
|
||||
--help '$exit_with display_help' \
|
||||
-h:,-H:,--host: host= \
|
||||
|
@ -86,8 +95,16 @@ parse_opts "${PRETTYOPTS[@]}" \
|
|||
-f:,--input: input= \
|
||||
-s:,--skip-lines: skip_lines= \
|
||||
-T,--truncate truncate=1 \
|
||||
-k:,--update-key: update_key= \
|
||||
-n,--fake fake=1 \
|
||||
@ 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
|
||||
fields=()
|
||||
while [ "$#" -gt 0 -a "$1" != "--" ]; do
|
||||
|
@ -154,4 +171,13 @@ mysqlargs=("${mysqlargs[@]}"
|
|||
--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