【发布时间】:2021-02-07 07:17:35
【问题描述】:
在 MySql 中,如果没有为表定义主键,MySQL 会为其关联一个默认的聚集索引,该索引的功能类似于主键。 Oracle表没有主键是什么情况?
【问题讨论】:
-
您的第一句话并不完全正确:stackoverflow.com/questions/13779138/… Oracle 数据库默认使用堆表;如果存在,Oracle 数据库始终使用主键作为集群键。
在 MySql 中,如果没有为表定义主键,MySQL 会为其关联一个默认的聚集索引,该索引的功能类似于主键。 Oracle表没有主键是什么情况?
【问题讨论】:
MySQL(或者更确切地说是存储引擎 innodb)不像 Oracle 通常那样存储数据。
所以底线是,如果没有主键(或非空唯一键),唯一标识 Oracle 堆表中的行的唯一方法是 ROWID 伪列。但是,ROWID 上的索引是不允许的。
【讨论】:
在 Oracle 中,没有主键的表不会发生任何事情。没有自动创建键或索引。
【讨论】: