43 lines
818 B
Bash
43 lines
818 B
Bash
#!/bin/bash
|
|
Insert() {
|
|
#Insert table [no_id] < key value
|
|
# [key value
|
|
# […]]
|
|
local \
|
|
table="$1" \
|
|
no_id="${2:-0}" \
|
|
insert_keys \
|
|
insert_values \
|
|
results
|
|
while read key value
|
|
do
|
|
(( ${#insert_keys} )) && insert_keys+=","
|
|
insert_keys+='`'"$key"'`'
|
|
(( ${#insert_values} )) && insert_values+=","
|
|
case $value in
|
|
'::AtOM:FT::'*)
|
|
value="${value//::AtOM:FT::/}"
|
|
insert_values+='"'"${value//\"/\"\"}"'"'
|
|
;;
|
|
'NULL')
|
|
insert_values+="NULL"
|
|
;;
|
|
+([0-9])?(.+([0-9])))
|
|
insert_values+=$value
|
|
;;
|
|
*)
|
|
insert_values+='"'"${value//\"/\"\"}"'"'
|
|
;;
|
|
esac
|
|
done
|
|
echo "INSERT INTO $table" \
|
|
"( $insert_keys )" \
|
|
"VALUES" \
|
|
"( $insert_values );" >&3
|
|
(( no_id )) || {
|
|
echo 'SELECT LAST_INSERT_ROWID();' >&3
|
|
read -u 4 results
|
|
echo "$results"
|
|
}
|
|
}
|