如何在mysql中使用主键约束_mysql PRIMARY KEY操作

11次阅读

主键约束用于唯一标识表中每一行,要求非空且唯一,可提升查询效率并支持外键引用。创建表时可直接定义单列主键或使用CONSTRaiNT命名,如:CREATE table users (id int PRIMARY KEY, name VARCHAR(50));对已有表添加主键需确保列已NOT NULL且值唯一,语法为ALTER TABLE users ADD PRIMARY KEY (id);删除主键使用ALTER TABLE users DROP PRIMARY KEY;联合主键适用于多字段组合唯一场景,如PRIMARY KEY (order_id, product_id);建议建表时选用自增列或UUID作为主键,避免业务含义,确保数据完整性。

如何在mysql中使用主键约束_mysql PRIMARY KEY操作

mysql 中,主键约束(PRIMARY KEY)用于唯一标识表中的每一行数据。主键列不允许有 NULL 值,且值必须唯一。合理使用主键可以提高查询效率,并作为外键引用的基础。

创建表时添加主键约束

在定义表结构时,可以直接为某一列设置 PRIMARY KEY 约束。

  • 单列主键示例:

CREATE TABLE users (
  id INT PRIMARY KEY,
  name VARCHAR(50)
);

  • 使用 CONSTRAINT 关键字命名主键(可选):

CREATE TABLE users (
  id INT,
  name VARCHAR(50),
  CONSTRAINT pk_users_id PRIMARY KEY (id)
);

对已有表添加主键约束

如果表已经存在但没有主键,可以使用 ALTER TABLE 添加主键。

ALTER TABLE users ADD PRIMARY KEY (id);

注意:添加主键前,确保该列已定义为 NOT NULL,且数据唯一,否则会报错。

删除主键约束

若需移除主键,可通过以下语句实现:

ALTER TABLE users DROP PRIMARY KEY;

注意:一个表只能有一个主键,删除时不需要指定列名,直接使用 DROP PRIMARY KEY 即可。

联合主键(Composite Primary Key)

当多个字段组合才能唯一标识一行时,可使用联合主键。

CREATE TABLE order_items (
  order_id INT,
  product_id INT,
  quantity INT,
  PRIMARY KEY (order_id, product_id)
);

此例中,order_id 和 product_id 一起构成主键,单独一个字段可以重复,但组合必须唯一。

基本上就这些。主键是数据库设计的基础,正确使用能有效避免数据冗余和不一致问题。建表时建议明确主键策略,优先选择无业务含义的自增列或 UUID。操作时注意数据完整性,避免添加主键时报错。

text=ZqhQzanResources