创建主键与外键的命令

 

创建表时,就创建相应的主键和外键:
create table t1
(id int primary key, 
name varchar(20)
);

create table t2
(
remark varchar(50),
p_id int references t1(id) /*表示列p_id外键关联于表t1的列id*/
);

需要注意的问题:
1、t1的id必须为key
2、关联的2个列的数据类型必须一致且必须长度完全一样。
 
创建完表后,再创建相应的外键:
-- 创建测试主表. ID 是主键.
CREATE TABLE test_main (
id      INT,
value   VARCHAR(10),
PRIMARY KEY(id) 
);

-- 创建测试子表. 
CREATE TABLE test_sub (
id      INT,
main_id INT,
value   VARCHAR(10),
PRIMARY KEY(id) 
);

默认外键约束方式
ALTER TABLE test_sub ADD CONSTRAINT main_id_cons FOREIGN KEY (main_id) REFERENCES test_main;

DELETE CASCADE 方式
-- 创建外键(使用 ON DELETE CASCADE 选项,删除主表的时候,同时删除子表)
ALTER TABLE test_sub
  ADD CONSTRAINT main_id_cons
    FOREIGN KEY (main_id) REFERENCES test_main ON DELETE CASCADE;

UPDATE CASCADE方式
-- 创建外键(使用 ON UPDATE CASCADE 选项,更新主表的主键时候,同时更新子表外键)
ALTER TABLE test_sub
  ADD CONSTRAINT main_id_cons
    FOREIGN KEY (main_id) REFERENCES test_main ON UPDATE CASCADE;

SET NULL方式
-- 创建外键(使用 ON DELETE SET NULL 选项,删除主表的时候,同时将子表的 main_id 设置为 NULL)
ALTER TABLE test_sub
  ADD CONSTRAINT main_id_cons
    FOREIGN KEY (main_id) REFERENCES test_main ON DELETE SET NULL;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值