推荐答案
在 MariaDB 中,可以通过以下两种方式定义主键:
在创建表时定义主键:
CREATE TABLE table_name ( column1 datatype PRIMARY KEY, column2 datatype, ... );
在已有表中添加主键:
ALTER TABLE table_name ADD PRIMARY KEY (column1);
本题详细解读
1. 在创建表时定义主键
在创建表时,可以直接在列定义中使用 PRIMARY KEY
关键字来指定某一列为主键。例如:
CREATE TABLE employees ( employee_id INT PRIMARY KEY, first_name VARCHAR(50), last_name VARCHAR(50) );
在这个例子中,employee_id
列被定义为主键。主键列的值必须是唯一的,且不能为 NULL
。
2. 在已有表中添加主键
如果表已经存在,可以使用 ALTER TABLE
语句来添加主键。例如:
ALTER TABLE employees ADD PRIMARY KEY (employee_id);
在这个例子中,employee_id
列被添加为主键。需要注意的是,如果表中已有数据,employee_id
列的值必须唯一且不能为 NULL
,否则添加主键的操作会失败。
3. 复合主键
MariaDB 还支持复合主键,即主键可以由多个列组成。例如:
CREATE TABLE orders ( order_id INT, product_id INT, quantity INT, PRIMARY KEY (order_id, product_id) );
在这个例子中,order_id
和 product_id
两列共同组成了复合主键。这意味着 order_id
和 product_id
的组合必须是唯一的。
4. 主键的约束
- 唯一性:主键列的值必须是唯一的,不能有重复。
- 非空性:主键列的值不能为
NULL
。 - 不可变性:一旦定义了主键,通常不建议修改主键列的值。
5. 删除主键
如果需要删除主键,可以使用以下语句:
ALTER TABLE table_name DROP PRIMARY KEY;
需要注意的是,删除主键后,表中的数据不会受到影响,但主键的约束将被移除。