git-svn-id: https://192.168.0.254/svn/Proyectos.Incam_SGD/tags/3.7.0.2_original@1 eb19766c-00d9-a042-a3a0-45cb8ec72764
84 lines
2.9 KiB
SQL
84 lines
2.9 KiB
SQL
-- PREPARE FOR ADDING CONSTRAINTS ON `groups_groups_link`
|
|
|
|
-- parent_group_id
|
|
|
|
CREATE TEMPORARY TABLE cleanup (
|
|
`id` int(11) NOT NULL auto_increment,
|
|
`parent_group_id` int(11) NOT NULL default '0',
|
|
`member_group_id` int(11) NOT NULL default '0',
|
|
PRIMARY KEY (`id`),
|
|
KEY `parent_group_id` (`parent_group_id`),
|
|
KEY `member_group_id` (`member_group_id`)
|
|
);
|
|
INSERT INTO cleanup (id, parent_group_id, member_group_id)
|
|
SELECT * FROM `groups_groups_link` AS gg WHERE ( SELECT 1 FROM `groups_lookup` AS g WHERE gg.parent_group_id = g.id);
|
|
SELECT * FROM cleanup;
|
|
TRUNCATE groups_groups_link;
|
|
INSERT groups_groups_link SELECT * FROM cleanup;
|
|
DROP TABLE cleanup;
|
|
|
|
-- member_group_id
|
|
|
|
CREATE TEMPORARY TABLE cleanup (
|
|
`id` int(11) NOT NULL auto_increment,
|
|
`parent_group_id` int(11) NOT NULL default '0',
|
|
`member_group_id` int(11) NOT NULL default '0',
|
|
PRIMARY KEY (`id`),
|
|
KEY `parent_group_id` (`parent_group_id`),
|
|
KEY `member_group_id` (`member_group_id`)
|
|
);
|
|
INSERT INTO cleanup (id, parent_group_id, member_group_id)
|
|
SELECT * FROM `groups_groups_link` AS gg WHERE ( SELECT 1 FROM `groups_lookup` AS g WHERE gg.member_group_id = g.id);
|
|
SELECT * FROM cleanup;
|
|
TRUNCATE groups_groups_link;
|
|
INSERT groups_groups_link SELECT * FROM cleanup;
|
|
DROP TABLE cleanup;
|
|
|
|
-- ADD CONSTRAINT
|
|
|
|
ALTER TABLE `groups_groups_link`
|
|
ADD CONSTRAINT `groups_groups_link_ibfk_1` FOREIGN KEY (`parent_group_id`) REFERENCES `groups_lookup` (`id`) ON DELETE CASCADE,
|
|
ADD CONSTRAINT `groups_groups_link_ibfk_2` FOREIGN KEY (`member_group_id`) REFERENCES `groups_lookup` (`id`) ON DELETE CASCADE;
|
|
|
|
|
|
-- PREPARE FOR ADDING CONSTRAINTS ON `users_groups_link`
|
|
|
|
-- group_id
|
|
CREATE TEMPORARY TABLE cleanup (
|
|
`id` int(11) NOT NULL auto_increment,
|
|
`user_id` int(11) NOT NULL default '0',
|
|
`group_id` int(11) NOT NULL default '0',
|
|
PRIMARY KEY (`id`),
|
|
KEY `user_id` (`user_id`),
|
|
KEY `group_id` (`group_id`)
|
|
);
|
|
INSERT INTO cleanup (id, user_id, group_id)
|
|
SELECT * FROM `users_groups_link` AS ug WHERE ( SELECT 1 FROM `groups_lookup` AS g WHERE ug.group_id = g.id);
|
|
SELECT * FROM cleanup;
|
|
TRUNCATE groups_groups_link;
|
|
INSERT groups_groups_link SELECT * FROM cleanup;
|
|
DROP TABLE cleanup;
|
|
|
|
-- user_id
|
|
CREATE TEMPORARY TABLE cleanup (
|
|
`id` int(11) NOT NULL auto_increment,
|
|
`user_id` int(11) NOT NULL default '0',
|
|
`group_id` int(11) NOT NULL default '0',
|
|
PRIMARY KEY (`id`),
|
|
KEY `user_id` (`user_id`),
|
|
KEY `group_id` (`group_id`)
|
|
);
|
|
INSERT INTO cleanup (id, user_id, group_id)
|
|
SELECT * FROM `users_groups_link` AS ug WHERE ( SELECT 1 FROM `groups_lookup` AS g WHERE ug.user_id = g.id);
|
|
SELECT * FROM cleanup;
|
|
TRUNCATE groups_groups_link;
|
|
INSERT groups_groups_link SELECT * FROM cleanup;
|
|
DROP TABLE cleanup;
|
|
|
|
-- ADD CONSTRAINT
|
|
|
|
ALTER TABLE `users_groups_link`
|
|
ADD CONSTRAINT `users_groups_link_ibfk_1` FOREIGN KEY (`group_id`) REFERENCES `groups_lookup` (`id`) ON DELETE CASCADE,
|
|
ADD CONSTRAINT `users_groups_link_ibfk_2` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE;
|
|
|