diff options
Diffstat (limited to 'odb')
-rw-r--r-- | odb/relational/sqlite/schema.cxx | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/odb/relational/sqlite/schema.cxx b/odb/relational/sqlite/schema.cxx index 649f8e0..6d1885b 100644 --- a/odb/relational/sqlite/schema.cxx +++ b/odb/relational/sqlite/schema.cxx @@ -187,6 +187,21 @@ namespace relational os << " CONSTRAINT " << quote_id (afk->name ()) << " REFERENCES " << quote_id (afk->referenced_table ().uname ()) << " (" << quote_id (afk->referenced_columns ()[0]) << ")"; + + bool del (afk->on_delete () != sema_rel::foreign_key::no_action); + bool def (!afk->not_deferrable ()); + + if (del || def) + { + instance<relational::create_foreign_key> cfk (*this); + + if (del) + cfk->on_delete (afk->on_delete ()); + + if (def) + cfk->deferrable (afk->deferrable ()); + } + afk->set ("sqlite-fk-defined", true); // Mark it as defined. } |