· 9 years ago · Oct 22, 2016, 06:44 AM
1CREATE TABLE `super` (
2 `id` bigint(20) NOT NULL,
3 ...
4 PRIMARY KEY (`id`)
5)
6
7CREATE TABLE `sub1` (
8 `id` bigint(20) NOT NULL,
9 ...
10 PRIMARY KEY (`id`),
11 CONSTRAINT `FKxxx` FOREIGN KEY (`id`) REFERENCES `super` (`id`)
12)
13
14CREATE TABLE `sub2` (
15 //Same as sub1
16)
17
18...
19
20BEGIN
21DECLARE subTable VARCHAR(255) DEFAULT NULL;
22IF (SELECT EXISTS (SELECT 1 FROM sub1 WHERE id=super_id)) THEN
23 SET subTable = "sub1";
24ELSEIF (SELECT EXISTS(SELECT 1 FROM sub2 WHERE id=super_id)) THEN
25 SET subTable = "sub2";
26ELSEIF (SELECT EXISTS (SELECT 1 FROM sub3 WHERE id=super_id)) THEN
27 SET subTable = "sub3";
28...
29END IF;
30RETURN subTable;
31END