mysqlloadcsv: support de l'option --prefix
This commit is contained in:
parent
a4e758ec5d
commit
db57d7958f
16
mysqlloadcsv
16
mysqlloadcsv
|
@ -67,6 +67,9 @@ OPTIONS
|
||||||
Nombre de lignes à sauter dans le fichier en entrée
|
Nombre de lignes à sauter dans le fichier en entrée
|
||||||
-n, --fake
|
-n, --fake
|
||||||
Ne pas effectuer l'opération. Afficher simplement la commande SQL.
|
Ne pas effectuer l'opération. Afficher simplement la commande SQL.
|
||||||
|
--prefix PREFIX
|
||||||
|
Spécifier un ensemble de requêtes SQL à exécuter ou à afficher avant les
|
||||||
|
requêtes générées automatiquement.
|
||||||
--run
|
--run
|
||||||
Forcer le lancement de l'opération. Utiliser cette option avec -A pour
|
Forcer le lancement de l'opération. Utiliser cette option avec -A pour
|
||||||
créer la table avec les paramètres analysés.
|
créer la table avec les paramètres analysés.
|
||||||
|
@ -206,6 +209,7 @@ profile=
|
||||||
input=
|
input=
|
||||||
auto_db=
|
auto_db=
|
||||||
skip_lines=
|
skip_lines=
|
||||||
|
prefix=
|
||||||
truncate=
|
truncate=
|
||||||
fake=
|
fake=
|
||||||
method=load
|
method=load
|
||||||
|
@ -224,6 +228,7 @@ parse_opts "${PRETTYOPTS[@]}" \
|
||||||
-s:,--skip-lines: skip_lines= \
|
-s:,--skip-lines: skip_lines= \
|
||||||
-n,--fake fake=1 \
|
-n,--fake fake=1 \
|
||||||
--run fake= \
|
--run fake= \
|
||||||
|
--prefix: prefix= \
|
||||||
-T,--truncate truncate=1 \
|
-T,--truncate truncate=1 \
|
||||||
-L,--load-data method=load \
|
-L,--load-data method=load \
|
||||||
-I,--insert-data method=insert \
|
-I,--insert-data method=insert \
|
||||||
|
@ -328,7 +333,10 @@ if [ "$method" == load ]; then
|
||||||
skip_lines=$(($skip_lines + 1))
|
skip_lines=$(($skip_lines + 1))
|
||||||
loadcsv="load data local infile '$input' into table \`$table\` character set 'utf8' fields terminated by ',' optionally enclosed by '\\\"' escaped by '\\\\' lines terminated by '\\n' starting by '' ignore $skip_lines lines ($cfields);"
|
loadcsv="load data local infile '$input' into table \`$table\` character set 'utf8' fields terminated by ',' optionally enclosed by '\\\"' escaped by '\\\\' lines terminated by '\\n' starting by '' ignore $skip_lines lines ($cfields);"
|
||||||
mysqlargs=("${mysqlargs[@]}"
|
mysqlargs=("${mysqlargs[@]}"
|
||||||
"$truncate$loadcsv"
|
"\
|
||||||
|
$prefix
|
||||||
|
$truncate
|
||||||
|
$loadcsv"
|
||||||
--
|
--
|
||||||
--local-infile=1
|
--local-infile=1
|
||||||
)
|
)
|
||||||
|
@ -337,6 +345,7 @@ if [ "$method" == load ]; then
|
||||||
r=0
|
r=0
|
||||||
if [ -n "$fake" ]; then
|
if [ -n "$fake" ]; then
|
||||||
echo "-- Requêtes SQL:"
|
echo "-- Requêtes SQL:"
|
||||||
|
[ -n "$prefix" ] && echo "$prefix"
|
||||||
[ -n "$truncate" ] && echo "$truncate"
|
[ -n "$truncate" ] && echo "$truncate"
|
||||||
echo "$loadcsv"
|
echo "$loadcsv"
|
||||||
echo "-- Commande à lancer pour importer la table dans MySQL:"
|
echo "-- Commande à lancer pour importer la table dans MySQL:"
|
||||||
|
@ -349,6 +358,7 @@ if [ "$method" == load ]; then
|
||||||
|
|
||||||
elif [ "$method" == insert ]; then
|
elif [ "$method" == insert ]; then
|
||||||
ac_set_tmpfile inserts
|
ac_set_tmpfile inserts
|
||||||
|
[ -n "$prefix" ] && echo "$prefix" >>"$inserts"
|
||||||
[ -n "$truncate" ] && echo "$truncate" >>"$inserts"
|
[ -n "$truncate" ] && echo "$truncate" >>"$inserts"
|
||||||
awkcsv <"$input" >>"$inserts" -s "$skip_lines" -v table="$table" \
|
awkcsv <"$input" >>"$inserts" -s "$skip_lines" -v table="$table" \
|
||||||
-v null_value="$null_value" -v types[@] -a "$__AWK_MYSQLFUNCS"'{
|
-v null_value="$null_value" -v types[@] -a "$__AWK_MYSQLFUNCS"'{
|
||||||
|
@ -382,6 +392,7 @@ elif [ "$method" == update ]; then
|
||||||
array_contains fields "$update_key" || die "$update_key: ce champ n'existe pas dans la source"
|
array_contains fields "$update_key" || die "$update_key: ce champ n'existe pas dans la source"
|
||||||
|
|
||||||
ac_set_tmpfile updates
|
ac_set_tmpfile updates
|
||||||
|
[ -n "$prefix" ] && echo "$prefix" >>"$updates"
|
||||||
[ -n "$truncate" ] && echo "$truncate" >>"$updates"
|
[ -n "$truncate" ] && echo "$truncate" >>"$updates"
|
||||||
awkcsv <"$input" >>"$updates" -s "$skip_lines" \
|
awkcsv <"$input" >>"$updates" -s "$skip_lines" \
|
||||||
-v table="$table" -v update_key="$update_key" \
|
-v table="$table" -v update_key="$update_key" \
|
||||||
|
@ -416,7 +427,8 @@ END {
|
||||||
|
|
||||||
elif [ "$method" == analyse ]; then
|
elif [ "$method" == analyse ]; then
|
||||||
ac_set_tmpfile create
|
ac_set_tmpfile create
|
||||||
awkcsv <"$input" >"$create" -s "$skip_lines" -v table="$table" \
|
[ -n "$prefix" ] && echo "$prefix" >>"$create"
|
||||||
|
awkcsv <"$input" >>"$create" -s "$skip_lines" -v table="$table" \
|
||||||
-v null_value="$null_value" -v types[@] -a "$__AWK_MYSQLFUNCS"'
|
-v null_value="$null_value" -v types[@] -a "$__AWK_MYSQLFUNCS"'
|
||||||
function set_integer(i) {
|
function set_integer(i) {
|
||||||
if (COL_TYPES[i] == "" || COL_TYPES[i] == "integer") {
|
if (COL_TYPES[i] == "" || COL_TYPES[i] == "integer") {
|
||||||
|
|
Loading…
Reference in New Issue