possibilité de spécifier la valeur qui doit être utilisée pour NULL
This commit is contained in:
parent
fbb9c693ff
commit
52388896bf
19
mysqlloadcsv
19
mysqlloadcsv
|
@ -71,7 +71,7 @@ OPTIONS
|
||||||
Vider la table avant d'effectuer le chargement
|
Vider la table avant d'effectuer le chargement
|
||||||
-L, --load-data
|
-L, --load-data
|
||||||
Charger les données avec la commande 'load data local'. C'est l'option
|
Charger les données avec la commande 'load data local'. C'est l'option
|
||||||
par défaut.
|
par défaut. Le fichier est transmis tel quel à MySQL.
|
||||||
-I, --insert-data
|
-I, --insert-data
|
||||||
Charger les données en générant des commandes 'insert into'. L'effet est
|
Charger les données en générant des commandes 'insert into'. L'effet est
|
||||||
en principe le même avec l'option -L (sauf que certains formats de date
|
en principe le même avec l'option -L (sauf que certains formats de date
|
||||||
|
@ -85,12 +85,18 @@ OPTIONS
|
||||||
aucune ligne ne correspond à une clé donnée, la mise à jour pour cette
|
aucune ligne ne correspond à une clé donnée, la mise à jour pour cette
|
||||||
ligne est ignorée.
|
ligne est ignorée.
|
||||||
Note: utiliser les options -T et -U ensemble n'a pas de sens, mais -T
|
Note: utiliser les options -T et -U ensemble n'a pas de sens, mais -T
|
||||||
est quand même honoré."
|
est quand même honoré.
|
||||||
|
-Z, --null-value VALUE
|
||||||
|
Avec les options -I et -U, considérer que NULL est représenté par la
|
||||||
|
chaine spécifiée. Par défaut, utiliser \N
|
||||||
|
-z, --null-is-empty
|
||||||
|
Avec les options -I et -U, considérer que NULL est représenté par la
|
||||||
|
chaine vide. Cette option est équivalente à -Z ''"
|
||||||
}
|
}
|
||||||
|
|
||||||
__AWK_MYSQLFUNCS='
|
__AWK_MYSQLFUNCS='
|
||||||
function format_sqlvalue(value) {
|
function format_sqlvalue(value) {
|
||||||
if (value == "\\N") {
|
if (value == null_value) {
|
||||||
value = "NULL"
|
value = "NULL"
|
||||||
} else if (value ~ /^[0-9]+$/) {
|
} else if (value ~ /^[0-9]+$/) {
|
||||||
} else if (value ~ /^[0-9][0-9]\/[0-9][0-9]\/[0-9][0-9]$/) {
|
} else if (value ~ /^[0-9][0-9]\/[0-9][0-9]\/[0-9][0-9]$/) {
|
||||||
|
@ -122,6 +128,7 @@ truncate=
|
||||||
fake=
|
fake=
|
||||||
method=load
|
method=load
|
||||||
update_key=
|
update_key=
|
||||||
|
null_value='\N'
|
||||||
parse_opts "${PRETTYOPTS[@]}" \
|
parse_opts "${PRETTYOPTS[@]}" \
|
||||||
--help '$exit_with display_help' \
|
--help '$exit_with display_help' \
|
||||||
-h:,-H:,--host: host= \
|
-h:,-H:,--host: host= \
|
||||||
|
@ -137,6 +144,8 @@ parse_opts "${PRETTYOPTS[@]}" \
|
||||||
-L,--load-data method=load \
|
-L,--load-data method=load \
|
||||||
-I,--insert-data method=insert \
|
-I,--insert-data method=insert \
|
||||||
-U:,-k:,--update-data: '$method=update; set@ update_key' \
|
-U:,-k:,--update-data: '$method=update; set@ update_key' \
|
||||||
|
-Z:,--null-value: null_value= \
|
||||||
|
-z,--null-is-empty null_value= \
|
||||||
@ args -- "$@" && set -- "${args[@]}" || die "$args"
|
@ args -- "$@" && set -- "${args[@]}" || die "$args"
|
||||||
|
|
||||||
dbtable="$1"; shift
|
dbtable="$1"; shift
|
||||||
|
@ -228,7 +237,7 @@ elif [ "$method" == insert ]; then
|
||||||
ac_set_tmpfile inserts
|
ac_set_tmpfile 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" \
|
||||||
-a "$__AWK_MYSQLFUNCS"'{
|
-v null_value="$null_value" -a "$__AWK_MYSQLFUNCS"'{
|
||||||
count = length(ORIGHEADERS)
|
count = length(ORIGHEADERS)
|
||||||
fields = ""
|
fields = ""
|
||||||
for (i = 1; i <= count; i++) {
|
for (i = 1; i <= count; i++) {
|
||||||
|
@ -262,7 +271,7 @@ elif [ "$method" == update ]; then
|
||||||
[ -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" \
|
||||||
-a "$__AWK_MYSQLFUNCS"'{
|
-v null_value="$null_value" -a "$__AWK_MYSQLFUNCS"'{
|
||||||
set_values = ""
|
set_values = ""
|
||||||
cond = ""
|
cond = ""
|
||||||
count = length(ORIGHEADERS)
|
count = length(ORIGHEADERS)
|
||||||
|
|
Loading…
Reference in New Issue