【源码】sql 外键的级联删除

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)
)



-- 插入测试主表数据.
INSERT INTO test_main(id, value) VALUES (1, 'ONE');
INSERT INTO test_main(id, value) VALUES (2, 'TWO');

-- 插入测试子表数据.

INSERT INTO test_sub(id, main_id, value) VALUES (1, 1, 'ONEONE');
INSERT INTO test_sub(id, main_id, value) VALUES (2, 2, 'TWOTWO');

SELECT * FROM test_main
SELECT * FROM test_sub

ALTER TABLE test_sub ADD CONSTRAINT main_id_cons FOREIGN KEY (main_id) REFERENCES test_main
ALTER TABLE test_sub DROP CONSTRAINT main_id_cons
ALTER TABLE test_sub ADD CONSTRAINT main_id_cons FOREIGN KEY (main_id) REFERENCES test_main ON DELETE CASCADE;
ALTER TABLE test_sub ADD CONSTRAINT main_id_cons FOREIGN KEY (main_id) REFERENCES test_main ON UPDATE CASCADE;



DELETE test_main

你可能感兴趣的:(sql)