MySQL
MySQL
ALTER TABLE orders
ADD CONSTRAINT fk_orders_user
FOREIGN KEY (user_id) REFERENCES users (id)
ON DELETE CASCADE ON UPDATE RESTRICT;
-- 建前确认外键列索引(InnoDB 会自动创建,显式建更可控)
ALTER TABLE orders ADD INDEX idx_user_id (user_id);PostgreSQL
PostgreSQL
ALTER TABLE orders
ADD CONSTRAINT fk_orders_user
FOREIGN KEY (user_id) REFERENCES users (id)
ON DELETE CASCADE ON UPDATE RESTRICT
DEFERRABLE INITIALLY IMMEDIATE; -- 需要时可延迟到提交时校验| 级联选项 | RESTRICT/NO ACTION 拒绝、CASCADE 跟随、SET NULL 置空(列需可空) |
|---|---|
| 索引 | 父表被引用列需唯一;子表外键列建议建索引 |
| 跨库限制 | 外键不能跨实例或分库,分片场景改用应用层保证 |