如何让Django将序列值插入Oracle表?

时间:2014-12-25 07:34:36

标签: python django oracle

如何指示Django针对给定模型的字段调用nextval

我意识到我可以在DB中触发:

CREATE TRIGGER foo_trg
BEFORE INSERT ON foo FOR EACH ROW
BEGIN
  SELECT foo_id_seq.NEXTVAL INTO :new.foo_id FROM dual;
END;

但是我很好奇Django是否可以通过MySQL和自动增量等配置来实现。

我没有看到Django Oracle notes中指定的任何内容。

1 个答案:

答案 0 :(得分:0)

Oracle 12c引入了两个与mysql自动增量相关的新功能。

使用序列的默认值

CREATE SEQUENCE seq;

CREATE TABLE t (
  x number default seq.nextval, /*-- no need for a trigger to autoincrement */.
  y varchar2(10)
);

http://docs.oracle.com/database/121/SQLRF/pseudocolumns002.htm#SQLRF50946

标识列

CREATE TABLE t (
  x number generated by default on null as identity,
  y varchar2(10)
);

http://docs.oracle.com/database/121/SQLRF/statements_7002.htm#SQLRF01402