summaryrefslogtreecommitdiff
path: root/odb/relational/oracle/schema.cxx
diff options
context:
space:
mode:
authorConstantin Michael <constantin@codesynthesis.com>2011-10-06 12:13:55 +0200
committerConstantin Michael <constantin@codesynthesis.com>2011-10-21 11:47:12 +0200
commitb683a4349522c7e067a70ba8b397bd38d956df61 (patch)
tree99e31d28debb40a929f4754ffbb9d4a6c893756f /odb/relational/oracle/schema.cxx
parent3801402911f59a5a375fb0d0fda29edb4b7dd9c0 (diff)
Correct Oracle auto ID trigger implementation
Diffstat (limited to 'odb/relational/oracle/schema.cxx')
-rw-r--r--odb/relational/oracle/schema.cxx10
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;";
}