【发布时间】:2016-04-13 16:19:50
【问题描述】:
我正在将基于 SQL Server 的应用程序移植到 Oracle。我们的 Oracle DBA 给了我一个应该与原始 SQL Server 模式相同的模式(并从它生成),但是缺少自动生成的键。我正在尝试将这些表 PK 从正常的 INT 更改为递增。我正在使用 Oracle SQL Developer 4.0.3 和 Oracle 12c 这样做。
我收到的错误是ORA-01442: column to be modified to NOT NULL is already NOT NULL
在编辑表格、选择列并将其身份下拉列表设置为“生成为身份”后,我得到了这个。我不确定为什么 SQl Developer 在它已经是 PK 时试图使其不为空。
我的问题是:这是设置生成密钥的正确方法吗?我怎样才能解决这个问题?如果我去更改所有必需的列,DBA 是否可以使用模式来重新生成他首先用来创建它的任何过程,以允许正确生成密钥,是否有更好的解决方案来创建一个好的模式以继续前进?
谢谢。
【问题讨论】:
标签: sql oracle plsql oracle12c