Added additional string to configure update/delete actions

This commit is contained in:
Noah Metz
2024-01-25 22:38:32 -07:00
parent 15eaabebc8
commit 5703b047a8
2 changed files with 4 additions and 3 deletions

View File

@@ -31,7 +31,7 @@
-type column_constraint() :: non_null | primary_key | {primary_key, pk_constraints()}
| unique | {default, sql_value()}.
-type column_constraints() :: column_constraint() | [column_constraint()].
-type table_constraint() :: {primary_key, [atom()]} | {foreign_key, {[atom()], atom(), [atom()]}} | {unique, [atom()]}.
-type table_constraint() :: {primary_key, [atom()]} | {foreign_key, {[atom()], atom(), [atom()], string()}} | {unique, [atom()]}.
-type table_constraints() :: table_constraint() | [table_constraint()].
-type table_info() :: [{column_id(), sql_type()} | {column_id(), sql_type(), column_constraints()}].

View File

@@ -376,14 +376,15 @@ table_constraint_sql(TableConstraint) ->
{unique, Columns} ->
["UNIQUE(",
map_intersperse(fun indexed_column_sql/1, Columns, ", "), ")"];
{foreign_key, {Columns, Parent, ParentColumns}} ->
{foreign_key, {Columns, Parent, ParentColumns, Action}} ->
["FOREIGN KEY(",
map_intersperse(fun indexed_column_sql/1, Columns, ", "),
") REFERENCES ",
atom_to_list(Parent),
"(",
map_intersperse(fun indexed_column_sql/1, ParentColumns, ", "),
")"];
")",
Action];
{raw, S} when is_list(S) -> S;
_ when is_list(TableConstraint) ->
map_intersperse(fun table_constraint_sql/1, TableConstraint, ", ")