插件窝 干货文章 SQL 如何添加主键列

SQL 如何添加主键列

PRIMARY TABLE 列名 ALTER 102    来源:    2025-03-29

在SQL中添加主键列的方法

在SQL中为表添加主键列有几种方法,取决于您是要在创建表时添加还是修改现有表。以下是详细的解决方案:

1. 创建表时添加主键列

CREATE TABLE 表名 (
    列名 数据类型 PRIMARY KEY,
    其他列 数据类型,
    ...
);

示例:

CREATE TABLE customers (
    customer_id INT PRIMARY KEY,
    name VARCHAR(100),
    email VARCHAR(100)
);

2. 为现有表添加主键列

方法一:添加新列并设为主键

ALTER TABLE 表名 ADD 列名 数据类型;
ALTER TABLE 表名 ADD PRIMARY KEY (列名);

示例:

ALTER TABLE employees ADD emp_id INT;
ALTER TABLE employees ADD PRIMARY KEY (emp_id);

方法二:修改现有列为主键

ALTER TABLE 表名 ADD PRIMARY KEY (列名);

示例:

ALTER TABLE orders ADD PRIMARY KEY (order_id);

3. 复合主键(多列主键)

ALTER TABLE 表名 ADD PRIMARY KEY (列1, 列2);

示例:

ALTER TABLE order_items ADD PRIMARY KEY (order_id, product_id);

4. 使用约束名称添加主键

ALTER TABLE 表名 ADD CONSTRAINT 约束名 PRIMARY KEY (列名);

示例:

ALTER TABLE products ADD CONSTRAINT pk_products PRIMARY KEY (product_id);

注意事项

  1. 主键列不能包含NULL值
  2. 主键值必须唯一
  3. 一个表只能有一个主键(可以是单列或多列组合)
  4. 在某些数据库系统中,添加主键会自动创建索引

不同数据库系统的语法差异

  • MySQL/MariaDB: 支持上述所有语法
  • SQL Server: 语法相同
  • Oracle: 语法基本相同,但可能需要使用MODIFY而非ALTER COLUMN
  • PostgreSQL: 语法相同

如果您需要针对特定数据库系统的更详细指导,请告知您使用的数据库类型。