oracle中如何进行PK

How work PK in oracle

我的任务是检查和更改 oracle table 中的 PK 字段(我是 Postgresql 和 Sql 服务器人员)我检查了 TOAD 约束并发现了这个:

PK_POI    Primary Key Disabled  Not Deferrable  Immediate  Not Validated  1    MI_PRINX
SYS_C0010910    Check Disabled  Not Deferrable  Immediate  Not Validated  1    "MI_PRINX" IS NOT NULL

我可以看到创建了两个约束,但据我了解,PK 已经是一个 NOT NULL 字段,所以为什么需要两个约束?

我还注意到两个约束都是 Disable 但在我的测试中我可以插入空值但两次插入不同的 id

所以不确定 Disable 约束是否意味着我认为应该意味着什么。

禁用就是您认为的意思。

关于NOT NULLPRIMARY KEY,是两个约束条件。主键意味着 NOT NULL,但如果删除主键约束,检查约束仍然存在。有关详细信息,请参阅 here

关于"I can insert null values...":这是因为两个约束都被禁用了。

关于“...但两次不同的 ID”:主键约束和用于强制执行它的唯一索引是两件不同的事情。你能检查一下这个列是否有唯一索引吗?