Dans le passé, SuperHero Inc. a eu quelques problèmes de perte de sources de données sous-jacentes à certains rapports BI. SuperDataBoy était un peu trop zélé en supprimant des tables, ne sachant pas qu’une vue y faisait référence.
Pour aider SuperDataBoy, nous allons créer un mécanisme qui vérifie si une vue obtient ses informations d’une table que nous sommes sur le point de supprimer. En cas de dépendance, la table ne doit pas être supprimée.
Voyons si nous pouvons aider SuperDataBoy !
Vous pouvez tester votre mécanisme avec ce petit morceau de code de démarrage qui crée simplement un grand nombre de tables/vues :
CREATE OR REPLACE TABLE table_1 (id INT);
CREATE OR REPLACE VIEW view_1 AS (SELECT * FROM table_1);
CREATE OR REPLACE TABLE table_2 (id INT);
CREATE OR REPLACE VIEW view_2 AS (SELECT * FROM table_2);
CREATE OR REPLACE TABLE table_6 (id INT);
CREATE OR REPLACE VIEW view_6 AS (SELECT * FROM table_6);
CREATE OR REPLACE TABLE table_5 (id INT);
CREATE OR REPLACE VIEW view_5 AS (SELECT * FROM table_5);
CREATE OR REPLACE TABLE table_4 (id INT);
CREATE OR REPLACE VIEW view_4 AS (SELECT * FROM table_4);
CREATE OR REPLACE TABLE table_3 (id INT);
CREATE OR REPLACE VIEW view_3 AS (SELECT * FROM table_3);
CREATE OR REPLACE VIEW my_union_view AS
SELECT * FROM table_1
UNION ALL
SELECT * FROM table_2
UNION ALL
SELECT * FROM table_3
UNION ALL
SELECT * FROM table_4
UNION ALL
SELECT * FROM table_5
UNION ALL
SELECT * FROM table_6;
Laisser un commentaire
Vous devez vous connecter pour publier un commentaire.