创建表时,就创建相应的主键和外键:
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;