在 MySQL 中,没有一个内建的、像 Oracle 数据库中那样的 ROWID 伪列。但是,MySQL 提供了几种方式来唯一地标识表中的行。
主键(PRIMARY KEY):每个表都可以有一个主键,它唯一地标识表中的每一行。主键的值在表中必须是唯一的,并且不能是 NULL。
自增字段(AUTO_INCREMENT):通常与主键一起使用,可以自动为每一行生成一个唯一的数字。这通常用于需要唯一标识符但不需要手动分配它们的场景。
例如:
sql
CREATE TABLE example (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL
);
在这个例子中,id 列是一个自增的主键,它会自动为每一行生成一个唯一的数字。
3. UUID:对于需要跨多个系统或数据库唯一标识行的场景,可以使用 UUID(通用唯一标识符)。UUID 是一个 128 位的数字,通常以 32 个十六进制数字(由连字符分隔)的形式表示。MySQL 提供了 UUID() 函数来生成 UUID。
例如:
sql
CREATE TABLE example (
uuid CHAR(36) PRIMARY KEY DEFAULT (UUID()),
name VARCHAR(255) NOT NULL
);
在这个例子中,uuid 列是一个主键,并使用 UUID() 函数为其生成一个默认值。
需要注意的是,虽然 MySQL 没有一个名为 ROWID 的内置功能,但您可以通过使用主键或 UUID 来达到类似的效果。