在创建表时,使用 PRIMARY KEY 关键字指定主键。例如: CREATE TABLE table_name ( id INT NOT NULL PRIMARY KEY, name VARCHAR(50) NOT NULL ); 在创建表后,使用 ALTER TABLE 语句来添加主键。例如: ALTER TABLE table_name ADD PRIMARY KEY (id); 需要注意的是,每个 InnoDB 表只能有一个主键,并且主键必须包含一个或多个 NOT NULL 列,以确保每行数据都有一个唯一标识。
在 InnoDB 存储引擎中,可以通过以下方式来设置主键:
在创建表时,使用 PRIMARY KEY 关键字指定主键。例如: CREATE TABLE table_name ( id INT NOT NULL PRIMARY KEY, name VARCHAR(50) NOT NULL ); 在创建表后,使用 ALTER TABLE 语句来添加主键。例如: ALTER TABLE table_name ADD PRIMARY KEY (id); 需要注意的是,每个 InnoDB 表只能有一个主键,并且主键必须包含一个或多个 NOT NULL 列,以确保每行数据都有一个唯一标识。
在InnoDB中,主键是用于唯一标识表中每个行的一列或多列。可以使用以下两种方式来设置InnoDB主键:
1、通过CREATE TABLE语句设置主键:
可以在CREATE TABLE语句中使用PRIMARY KEY关键字指定一个或多个列作为主键,例如:
上面的示例中,我们将“id”列指定为主键。如果要指定多个列,则可以使用逗号分隔列名,例如:
上面的示例中,我们将“id”和“name”列组合起来作为主键。
2、通过ALTER TABLE语句添加主键:
可以使用ALTER TABLE语句来添加主键。例如,假设我们已经有一个名为“my_table”的表,并且希望将“id”列设置为主键,可以执行以下命令:
上面的示例中,我们使用ALTER TABLE语句将“id”列添加为主键。
无论使用哪种方式,一旦指定了主键,就不能再将其更改或删除。主键在表中必须是唯一的,也就是说,每个行必须具有唯一的主键值。
每个表只能定义一个主键 主键值必须唯一标识表中的每一行,且不能为 NULL,即表中不可能存在两行数据有相同的主键值。这是唯一性原则。 一个列名只能在复合主键列表中出现一次。 复合主键不能包含不必要的多余列。当把复合主键的某一列删除后,如果剩下的列构成的主键仍然满足唯一性原则,那么这个复合主键是不正确的。这是最小化原则。
InnoDB主键建表时选择自增主键即可,设置好自增步值,防止通过程序插入导致的主键冲突。
您好,建议添加自增主键,递增与 InnoDB 本身数据的存储原理相契合,有利于数据的顺序存储及读取,更好的避免插入过程中的数据分页。