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
|
||||
-L, --load-data
|
||||
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
|
||||
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
|
||||
|
@ -85,12 +85,18 @@ OPTIONS
|
|||
aucune ligne ne correspond à une clé donnée, la mise à jour pour cette
|
||||
ligne est ignorée.
|
||||
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='
|
||||
function format_sqlvalue(value) {
|
||||
if (value == "\\N") {
|
||||
if (value == null_value) {
|
||||
value = "NULL"
|
||||
} else if (value ~ /^[0-9]+$/) {
|
||||
} else if (value ~ /^[0-9][0-9]\/[0-9][0-9]\/[0-9][0-9]$/) {
|
||||
|
@ -122,6 +128,7 @@ truncate=
|
|||
fake=
|
||||
method=load
|
||||
update_key=
|
||||
null_value='\N'
|
||||
parse_opts "${PRETTYOPTS[@]}" \
|
||||
--help '$exit_with display_help' \
|
||||
-h:,-H:,--host: host= \
|
||||
|
@ -137,6 +144,8 @@ parse_opts "${PRETTYOPTS[@]}" \
|
|||
-L,--load-data method=load \
|
||||
-I,--insert-data method=insert \
|
||||
-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"
|
||||
|
||||
dbtable="$1"; shift
|
||||
|
@ -228,7 +237,7 @@ elif [ "$method" == insert ]; then
|
|||
ac_set_tmpfile inserts
|
||||
[ -n "$truncate" ] && echo "$truncate" >>"$inserts"
|
||||
awkcsv <"$input" >>"$inserts" -s "$skip_lines" -v table="$table" \
|
||||
-a "$__AWK_MYSQLFUNCS"'{
|
||||
-v null_value="$null_value" -a "$__AWK_MYSQLFUNCS"'{
|
||||
count = length(ORIGHEADERS)
|
||||
fields = ""
|
||||
for (i = 1; i <= count; i++) {
|
||||
|
@ -262,7 +271,7 @@ elif [ "$method" == update ]; then
|
|||
[ -n "$truncate" ] && echo "$truncate" >>"$updates"
|
||||
awkcsv <"$input" >>"$updates" -s "$skip_lines" \
|
||||
-v table="$table" -v update_key="$update_key" \
|
||||
-a "$__AWK_MYSQLFUNCS"'{
|
||||
-v null_value="$null_value" -a "$__AWK_MYSQLFUNCS"'{
|
||||
set_values = ""
|
||||
cond = ""
|
||||
count = length(ORIGHEADERS)
|
||||
|
|
Loading…
Reference in New Issue