# $Id: cs_role.3.sql,v 1.1.1.1 2005/08/27 15:44:48 jpinto Exp $
# Change column to allow null values and add the required indexes
ALTER TABLE cs_role
CHANGE master_rid master_rid INT UNSIGNED NULL,
ADD INDEX(master_rid);
UPDATE cs_role
SET master_rid = NULL WHERE master_rid = 0;
# Add the foreign keys
ALTER TABLE cs_role
ADD CONSTRAINT FK_CSR1 FOREIGN KEY (scid) REFERENCES chanserv (scid)
ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE cs_role
ADD CONSTRAINT FK_CSR2 FOREIGN KEY (master_rid) REFERENCES cs_role (rid)
ON DELETE SET NULL ON UPDATE CASCADE;
# Change column to allow null values and add the required indexes
ALTER TABLE cs_role_users
CHANGE who who INT UNSIGNED NULL,
ADD INDEX(who),
ADD INDEX(rid);
UPDATE cs_role_users
SET who=NULL WHERE who = 0;
# There was some bug which caused this
DELETE FROM cs_role_users WHERE snid = 0;
# Add the foreign keys
ALTER TABLE cs_role_users
ADD CONSTRAINT FK_CSRU1 FOREIGN KEY (rid) REFERENCES cs_role (rid)
ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE cs_role_users
ADD CONSTRAINT FK_CSRU2 FOREIGN KEY (snid) REFERENCES nickserv (snid)
ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE cs_role_users
ADD CONSTRAINT FK_CSRU3 FOREIGN KEY (who) REFERENCES nickserv (snid)
ON DELETE SET NULL ON UPDATE CASCADE;
ALTER TABLE cs_role_users
ADD CONSTRAINT FK_CSRU4 FOREIGN KEY (scid) REFERENCES chanserv (scid)
ON DELETE CASCADE ON UPDATE CASCADE;
syntax highlighted by Code2HTML, v. 0.9.1