oracle - Oracle 12c 自动增量
问题描述
所以我有下表:
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
?触发器是唯一的出路吗?
解决方案
当我尝试插入新行时,我得到:
ORA-01400: cannot insert NULL into ("car"."id_internal")
这似乎是错误 18110491,它会影响 12.1.0.1 和 12.1.0.2。它在 2017 年 10 月的 PSU(和 12cR2)中报告为已修复,因此 - 假设您有支持合同,否则您将无法看到错误报告 - 您可以应用它(或以后的一个)。这对我来说在我的 12cR1 系统中运行良好,带有更新的 PSU。
推荐阅读
- bash - 使用 grep -f 查找匹配的模式本身
- javascript - 使用单引号和连接的 JS 字符串有什么区别?
- java - BST:分析给定参考找到上一个
- java - 如何将 double 转换为 2 个小数位?
- php - 在 zf-rest 中将数据作为数组而不是 stdClass 获取
- c - 从双向链表中删除特定节点(在 c 中) - 无法删除尾部
- php - 如何使用 laravel 计算用户对 hasMany 关系的特定评论
- node.js - 错误:找不到模块 'ieee754' - 在 Loopback js 中运行 'lb' 命令时
- c - 仅删除一次具有特定值的 LinkedList
- python - 需要在 Python Selenium 中抓取分页页面