在MySQL中,主键(Primary Key)和外键(Foreign Key)是关系型数据库设计中的基本概念,用于确保数据的引用完整性和一致性。下面我将详细介绍这两个概念及其关联语句。
主键(Primary Key):
外键(Foreign Key):
假设我们有两个表:orders 和 customers。orders 表中的 customer_id 字段是外键,它引用了 customers 表中的 id 字段(主键)。
CREATE TABLE customers (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL
);
CREATE TABLE orders (
order_id INT AUTO_INCREMENT PRIMARY KEY,
customer_id INT,
order_date DATE,
FOREIGN KEY (customer_id) REFERENCES customers(id)
);在这个例子中,orders 表的 customer_id 字段被定义为外键,它引用了 customers 表的 id 字段。
如果表已经存在,可以使用 ALTER TABLE 语句来添加外键:
ALTER TABLE orders
ADD FOREIGN KEY (customer_id) REFERENCES customers(id);优势:
应用场景:
问题1:外键约束冲突
INSERT INTO orders (customer_id, order_date) VALUES (1, '2023-10-01');
-- 如果 customer_id=1 在 customers 表中不存在,会报错问题2:删除参照表中的主键记录
ON DELETE 选项。ALTER TABLE orders
DROP FOREIGN KEY fk_customer_id,
ADD CONSTRAINT fk_customer_id FOREIGN KEY (customer_id) REFERENCES customers(id) ON DELETE CASCADE;在这个例子中,设置 ON DELETE CASCADE 后,删除 customers 表中的记录时,会自动删除所有引用该记录的 orders 表中的记录。
希望这些信息对你有所帮助!如果有更多问题,请随时提问。
没有搜到相关的文章