_remove_track_query = new QSqlQuery(db);
_remove_track_query->prepare("DELETE FROM tracks WHERE id = :id");
+
+ _remove_empty_albums_query = new QSqlQuery(db);
+ _remove_empty_albums_query->prepare("DELETE FROM album WHERE album.id IN "
+ "(SELECT id FROM "
+ "(SELECT COUNT(tracks.id) AS cnt, album.id FROM "
+ "album LEFT OUTER JOIN tracks ON album.id = tracks.album_id "
+ "GROUP BY album.id) WHERE cnt = 0)");
+
+ _remove_empty_artists_query = new QSqlQuery(db);
+ _remove_empty_artists_query->prepare("DELETE FROM artist WHERE artist.id IN "
+ "(SELECT id FROM "
+ "(SELECT COUNT(tracks.id) AS cnt, artist.id FROM "
+ "artist LEFT OUTER JOIN tracks ON artist.id = tracks.artist_id "
+ "GROUP BY artist.id) WHERE cnt = 0)");
}
void DbStorage::_create_database_structure() {
query->exec();
if (query->next()) { // found track in library
int id = query->value(0).toInt();
- qWarning() << "found " << id;
query = _remove_track_query;
query->bindValue(":id", id);
query->exec();
addTrack(track);
+ _cleanup();
}
return track;
}
}
return found;
}
+
+void DbStorage::_cleanup() {
+ _remove_empty_albums_query->exec();
+ _remove_empty_artists_query->exec();
+}