UPGRADING: Create foreign key after modifying column

We cannot change a column after creating a foreign key:

    ERROR 1832 (HY000): Cannot change column 'PackageBaseID': used in a
    foreign key constraint 'Packages_ibfk_1'

Delay the "ADD FOREIGN KEY" command to fix this.

Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
This commit is contained in:
Lukas Fleischer 2014-05-27 15:32:18 +02:00
parent e5463c962c
commit b26b5bba47

View file

@ -86,11 +86,11 @@ ALTER TABLE Packages
7. Add package base references to the Packages table: 7. Add package base references to the Packages table:
---- ----
ALTER TABLE Packages ALTER TABLE Packages ADD COLUMN PackageBaseID INTEGER UNSIGNED NULL;
ADD COLUMN PackageBaseID INTEGER UNSIGNED NULL,
ADD FOREIGN KEY (PackageBaseID) REFERENCES PackageBases(ID) ON DELETE CASCADE;
UPDATE Packages SET PackageBaseID = ID; UPDATE Packages SET PackageBaseID = ID;
ALTER TABLE Packages MODIFY PackageBaseID INTEGER UNSIGNED NOT NULL; ALTER TABLE Packages
MODIFY PackageBaseID INTEGER UNSIGNED NOT NULL,
ADD FOREIGN KEY (PackageBaseID) REFERENCES PackageBases(ID) ON DELETE CASCADE;
---- ----
8. Delete foreign keys from PackageVotes, PackageComments and CommentNotify: 8. Delete foreign keys from PackageVotes, PackageComments and CommentNotify: