From 60c6142688b3f575b20e387310fd1a569b119d2a Mon Sep 17 00:00:00 2001 From: Mike Colagrosso Date: Tue, 16 Jan 2024 20:46:26 -0700 Subject: [PATCH] Delete unreferenced artists after updating artwork Also clean up ArtistAlternateSpellings at the same time we delete an artist --- lib/Artist.php | 20 ++++++++++++++++++++ lib/Artwork.php | 2 ++ 2 files changed, 22 insertions(+) diff --git a/lib/Artist.php b/lib/Artist.php index d8ab6fa3..8bcd709a 100644 --- a/lib/Artist.php +++ b/lib/Artist.php @@ -141,5 +141,25 @@ class Artist extends PropertiesBase{ from Artists where ArtistId = ? ', [$this->ArtistId]); + Db::Query(' + DELETE + from ArtistAlternateSpellings + where ArtistId = ? + ', [$this->ArtistId]); + } + + public static function DeleteUnreferencedArtists(): void{ + Db::Query(' + DELETE + from Artists + where ArtistId NOT IN + (SELECT DISTINCT ArtistId FROM Artworks) + '); + Db::Query(' + DELETE + from ArtistAlternateSpellings + where ArtistId NOT IN + (SELECT DISTINCT ArtistId FROM Artworks) + '); } } diff --git a/lib/Artwork.php b/lib/Artwork.php index c6c6183e..e8e80c11 100644 --- a/lib/Artwork.php +++ b/lib/Artwork.php @@ -731,6 +731,8 @@ class Artwork extends PropertiesBase{ $this->ArtworkId] ); + Artist::DeleteUnreferencedArtists(); + Db::Query(' DELETE FROM ArtworkTags WHERE