Oracle 12c自动增量

时间:2019-01-28 18:18:53

标签: oracle oracle12c

所以我有下表:

CREATE TABLE car (
  id                                NUMBER GENERATED BY DEFAULT ON NULL AS IDENTITY, 
  (...)
  PRIMARY KEY (ID)
);

然后我添加了一个新列:

CREATE SEQUENCE car_sequence START WITH 1;
ALTER TABLE car ADD id_internal NUMBER DEFAULT car_sequence.nextval NOT NULL;

如何基于id_internal的下一个值强制car_sequence(插入时)自动递增?触发器是这里唯一的出路吗?

1 个答案:

答案 0 :(得分:2)

  

当我尝试插入新行时,我得到:ORA-01400: cannot insert NULL into ("car"."id_internal")

这似乎是bug 18110491,它会影响12.1.0.1和12.1.0.2。在2017年10月的PSU(和12cR2)中已将其报告为固定的,因此-假设您有支持合同,否则,您将始终无法看到该错误报告-您可以(或稍后)应用该报告。对于我的12cR1系统和更新的PSU,这对我来说工作正常。