[aur-dev] [PATCH 2/2] UPGRADING: Create foreign key after modifying column

Lukas Fleischer archlinux at cryptocrack.de
Tue May 27 09:53:21 EDT 2014


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 at cryptocrack.de>
---
 UPGRADING | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

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



More information about the aur-dev mailing list