From b683a4349522c7e067a70ba8b397bd38d956df61 Mon Sep 17 00:00:00 2001 From: Constantin Michael Date: Thu, 6 Oct 2011 12:13:55 +0200 Subject: Correct Oracle auto ID trigger implementation --- odb/relational/oracle/schema.cxx | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'odb/relational/oracle/schema.cxx') 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;"; } -- cgit v1.1