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
-~----------~----~----~----~------~----~------~--~---

Reply via email to