diff options
author | Constantin Michael <constantin@codesynthesis.com> | 2011-10-06 12:13:55 +0200 |
---|---|---|
committer | Constantin Michael <constantin@codesynthesis.com> | 2011-10-21 11:47:12 +0200 |
commit | b683a4349522c7e067a70ba8b397bd38d956df61 (patch) | |
tree | 99e31d28debb40a929f4754ffbb9d4a6c893756f | |
parent | 3801402911f59a5a375fb0d0fda29edb4b7dd9c0 (diff) |
Correct Oracle auto ID trigger implementation
-rw-r--r-- | odb/relational/oracle/schema.cxx | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/odb/relational/oracle/schema.cxx b/odb/relational/oracle/schema.cxx index 5504927..bdc3fbe 100644 --- a/odb/relational/oracle/schema.cxx +++ b/odb/relational/oracle/schema.cxx @@ -240,7 +240,9 @@ namespace relational if (tables_[pass_].count (name)) return; - if (id_member (c)->count ("auto")) + semantics::data_member* id (id_member (c)); + + if (id->count ("auto")) { string seq_name (quote_id (name + "_seq")); @@ -248,12 +250,12 @@ namespace relational << " START WITH 1 INCREMENT BY 1;" << endl; os_ << "CREATE TRIGGER " << - quote_id (name + "_auto_id_trig") << endl + quote_id (name + "_trig") << endl << " BEFORE INSERT ON " << quote_id (name) << endl << " FOR EACH ROW" << endl << "BEGIN" << endl - << " SELECT " << seq_name << - ".nextval INTO :new.id FROM DUAL;" << endl + << " SELECT " << seq_name << ".nextval INTO :new. " << + id->name () << " FROM DUAL;" << endl << "END;"; } |