From 498b55efdd670434a96751512d83f5aa861ae140 Mon Sep 17 00:00:00 2001 From: Alex van Andel Date: Tue, 24 Sep 2024 18:36:23 +0100 Subject: [PATCH] chore: Improve performance of query that removes disconnected Credentials (#16792) --- .../migration.sql | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/packages/prisma/migrations/20240924112248_booking_reference_null_credential_on_delete/migration.sql b/packages/prisma/migrations/20240924112248_booking_reference_null_credential_on_delete/migration.sql index 4e01cc2b92..ab5b5799b5 100644 --- a/packages/prisma/migrations/20240924112248_booking_reference_null_credential_on_delete/migration.sql +++ b/packages/prisma/migrations/20240924112248_booking_reference_null_credential_on_delete/migration.sql @@ -2,10 +2,15 @@ DROP INDEX "BookingReference_credentialId_idx"; -- Remove disconnected Credentials from bookingReference to prevent foreign key constraint error -UPDATE "BookingReference" +UPDATE "BookingReference" br SET "credentialId" = NULL -WHERE "credentialId" IS NOT NULL -AND "credentialId" NOT IN (SELECT "id" FROM "Credential"); +WHERE br."credentialId" IS NOT NULL + AND br."credentialId" != 0 + AND NOT EXISTS ( + SELECT 1 + FROM "Credential" c + WHERE c."id" = br."credentialId" + ); -- AddForeignKey ALTER TABLE "BookingReference" ADD CONSTRAINT "BookingReference_credentialId_fkey" FOREIGN KEY ("credentialId") REFERENCES "Credential"("id") ON DELETE SET NULL ON UPDATE CASCADE;