diff --git a/atom b/atom index a370c32..58475b5 100755 --- a/atom +++ b/atom @@ -348,6 +348,48 @@ Update(){ "${where_statement[@]}" \ ";" >&3 } +InsertIfUnset() { +#InsertIfUnset table [no_id] < key value \n key value + local \ + table="$1" \ + no_id="${2:-0}" \ + column \ + key \ + keys \ + results \ + value \ + values + while read key value + do + keys+=( "$key" ) + values+=( "$value" ) + done + if (( no_id )) + then + column="${keys[0]}" + else + column='id' + fi + if ! results=$( + Select "$table" "$column" < <( + for key in ${!keys[@]} + do + echo "${keys[$key]}" "${values[$key]}" + done + ) + ) + then + results=$( + Insert "$table" < <( + for key in ${!keys[@]} + do + echo "${keys[$key]}" "${values[$key]}" + done + ) + ) + fi + echo "$results" +} InsertOrUpdate() { #InsertOrUpdate table set_key set_value [set_key set_value […]] < where_key where_value # [where_key where_value