#801

Πρόσθεσε ένα FK σε έναν μεγάλο πίνακα παραγωγής χωρίς μπλοκάρισμα

Ένας μεγάλος πίνακας παραγωγής χρειάζεται ένα foreign key. Η απλή προσθήκη παίρνει ένα αποκλειστικό lock — οι αναγνώσεις και οι εγγραφές μπλοκάρονται όσο σαρώνει. Το κόλπο γίνεται σε δύο βήματα: πρώτα κρέμασε το κλειδί με «μην το επικυρώσεις ακόμη» (στιγμιαίο, δεν μπλοκάρει τους writers), έπειτα τρέξε την επικύρωση πάνω στις παλιές γραμμές με ξεχωριστή εντολή (χωρίς locks εγγραφής). Φτιάξε τους parents και children, εισήγαγε μερικές γραμμές. Πρόσθεσε ένα foreign key children_parent_id_fkey στο children από τη στήλη parent_id στο parents(id) χωρίς άμεση επικύρωση. Έπειτα τρέξε επικύρωση πάνω σε αυτό το ίδιο κλειδί — θα πρέπει στο τέλος να είναι σημειωμένο ως επικυρωμένο.

Μόνο CREATE/ALTER/DROP — δεν χρειάζεται τελικό SELECT.

Το αποτέλεσμα του ερωτήματός σας θα εμφανιστεί εδώ

Χωρίς αρχικό σχήμα

Αυτή η άσκηση ξεκινά χωρίς πίνακες — θα τους δημιουργήσετε μέσω CREATE TABLE.