REST API 插入具有 'GENERATED ALWAYS' 列的 table

REST API inserting into a table with 'GENERATED ALWAYS' column

我正在使用 Oracle 的自治数据库服务,ORDS 提供 REST 功能。

更新 table(文档 here)时,当我有一个标识列 idGENERATED ALWAYS 时,似乎 POST 请求即使在请求正文中未提供 id 值时,也会被 REST 服务解析为 id: null.

这给了我 Error Message: ORA-32795: cannot insert into a generated always identity column ORA-06512: at line 4

使用 SQL 语句插入 table 而未指定 id 列按预期工作。

有没有办法在允许 POST 更新的同时始终生成标识列(因此无法指定新行的 ID)?

Auto Rest 功能将始终生成所有列,因此除了

之外没有其他解决方案
  • 开发您自己的 POST 方法并省略 IDENTITY
  • 更改 IDENTITY TYPE,例如从 GENERATED ALWAYS 更改为 GENERATED BY DEFAULT ON NULL,因此当您将其设置为 null 时,Oracle 将创建一个值。

我会去第二次。

ALTER TABLE IDENTITY_TABLE MODIFY ( ID GENERATED BY DEFAULT ON NULL AS IDENTITY );

Jeff Smith 对这种情况的解释post很棒

AUTO POST and IDENTITY COLUMNS