We have an oracle database, and all of our tables have auto-generating id's on the primary key via a trigger that looks like : ----------------- CREATE OR REPLACE TRIGGER "SCHEMA".some_table_rid BEFORE INSERT OR UPDATE OF rid ON some_table FOR EACH ROW BEGIN IF UPDATING THEN :new.rid := :old.rid; END IF; IF INSERTING THEN IF :new.rid = 0 THEN SELECT some_table_rid.NEXTVAL INTO :new.rid FROM dual; ELSE DECLARE num1 number(12); BEGIN SELECT last_number INTO num1 FROM USER_SEQUENCES WHERE SEQUENCE_NAME = 'SOME_TABLE_RID'; IF num1 <= :new.rid THEN LOOP SELECT some_table_rid.NEXTVAL INTO num1 FROM dual; EXIT WHEN num1 >= :new.rid; END LOOP; END IF; END; END IF; END IF; END; ----------------- This allows any external tool (like SQL Alchemy) to control primary key generation via the sequence, but still allows the next id to be inserted automatically by just inserting a 0 into the table for the primary key
I'd like a similiar trigger created on every table create that included a Sequence as part of a primary_key col. Is there a way to easily hook into the table creation mechanism so that whenever a Sequence was specified as part of a Column definition, a similiar trigger could be inserted (substituting some names obviously)? I know I can manually issue the DDL after-the-fact for each table create, but would prefer it be more implicit. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To post to this group, send email to sqlalchemy@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/sqlalchemy?hl=en -~----------~----~----~----~------~----~------~--~---