Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

mysql添加外键约束的sql语句

作者:倾尽尘光暖流年   发布日期:2026-04-09   浏览:16

-- 假设我们有两个表:`orders` 和 `customers`
-- `customers` 表包含客户信息,`orders` 表包含订单信息,并且每个订单都关联到一个客户。

-- 创建 customers 表
CREATE TABLE customers (
    customer_id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    email VARCHAR(100)
);

-- 创建 orders 表,不带外键约束
CREATE TABLE orders (
    order_id INT AUTO_INCREMENT PRIMARY KEY,
    order_date DATE NOT NULL,
    customer_id INT
);

-- 添加外键约束到 orders 表,确保 customer_id 引用 customers 表中的 customer_id
ALTER TABLE orders
ADD CONSTRAINT fk_customer
FOREIGN KEY (customer_id) REFERENCES customers(customer_id)
ON DELETE CASCADE
ON UPDATE CASCADE;

-- 解释:
-- 1. `ALTER TABLE orders`:修改 `orders` 表。
-- 2. `ADD CONSTRAINT fk_customer`:添加一个名为 `fk_customer` 的外键约束。
-- 3. `FOREIGN KEY (customer_id)`:指定 `orders` 表中的 `customer_id` 列作为外键。
-- 4. `REFERENCES customers(customer_id)`:指定该外键引用 `customers` 表中的 `customer_id` 列。
-- 5. `ON DELETE CASCADE`:当 `customers` 表中的记录被删除时,`orders` 表中对应的记录也会被自动删除。
-- 6. `ON UPDATE CASCADE`:当 `customers` 表中的 `customer_id` 被更新时,`orders` 表中对应的 `customer_id` 也会被自动更新。

上一篇:mysql character

下一篇:mysql代码

大家都在看

mysqlavg函数保留小数

mysql显示表内容

mysql经纬度距离计算

mysql 加密

存储过程mysql

mysql 1265

mysql with语句

mysql时间加减

mysql查询表名,模糊匹配

brew 启动mysql

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站