推荐答案
在 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;
需要注意的是,删除主键后,表中的数据不会受到影响,但主键的约束将被移除。