2025-11-11 17:17:56 +01:00

43 lines
829 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 -u4 -r -d $'\0' results
echo "$results"
}
}