Compare commits
7 Commits
usability
...
7cb0bd077f
| Author | SHA1 | Date | |
|---|---|---|---|
| 7cb0bd077f | |||
| 0ba2aa310e | |||
| 1916668c6e | |||
| 919800da42 | |||
| 947580a2ec | |||
| 688b9a22b6 | |||
| 76ce0fc54f |
@@ -121,7 +121,8 @@ function generateInsertSQL(table_name::String, columnToInsert::Vector{Symbol}, d
|
||||
for (key, value) in data
|
||||
if key ∈ columnToInsert
|
||||
push!(columns, string(key))
|
||||
push!(values, "'$value'") #[] number should not wrapped in ''
|
||||
value_str = isa(value, AbstractString) ? "'$value'" : "$value"
|
||||
push!(values, value_str)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -131,6 +132,24 @@ function generateInsertSQL(table_name::String, columnToInsert::Vector{Symbol}, d
|
||||
return "INSERT INTO $table_name ($columns_str) VALUES ($values_str);"
|
||||
end
|
||||
|
||||
function generateInsertSQL(table_name::String, data::AbstractDict{String, Any})
|
||||
columns = String[]
|
||||
values = String[]
|
||||
|
||||
for (key, value) in data
|
||||
if key ∈ columnToInsert
|
||||
push!(columns, string(key))
|
||||
value_str = isa(value, AbstractString) ? "'$value'" : "$value"
|
||||
push!(values, value_str)
|
||||
end
|
||||
end
|
||||
|
||||
columns_str = join(columns, ", ")
|
||||
values_str = join(values, ", ")
|
||||
|
||||
return "INSERT INTO $table_name ($columns_str) VALUES ($values_str);"
|
||||
end
|
||||
|
||||
|
||||
# ---------------------------------------------- 100 --------------------------------------------- #
|
||||
|
||||
@@ -185,5 +204,30 @@ function generateUpdateSQL(table_name::String, pk_column::String, pk_value,
|
||||
return "UPDATE $table_name SET $set_clause WHERE $pk_column = $pk_val_str;"
|
||||
end
|
||||
|
||||
function generateUpdateSQL(table_name::String, pk_dict::AbstractDict{String, Any},
|
||||
data::AbstractDict{String, Any})
|
||||
# Build SET clause
|
||||
set_parts = String[]
|
||||
for (key, value) in data
|
||||
if key ∉ keys(data)
|
||||
value_str = isa(value, AbstractString) ? "'$value'" : "$value"
|
||||
push!(set_parts, "$(string(key)) = $value_str")
|
||||
end
|
||||
end
|
||||
|
||||
set_clause = join(set_parts, ", ")
|
||||
|
||||
# Build WHERE clause for composite keys
|
||||
where_parts = String[]
|
||||
for (col, val) in pk_dict
|
||||
val_str = isa(val, AbstractString) ? "'$val'" : "$val"
|
||||
push!(where_parts, "$(string(col)) = $val_str")
|
||||
end
|
||||
|
||||
where_clause = join(where_parts, " AND ")
|
||||
|
||||
return "UPDATE $table_name SET $set_clause WHERE $where_clause;"
|
||||
end
|
||||
|
||||
|
||||
end # module
|
||||
Reference in New Issue
Block a user