Τι είναι ένας περιορισμός NOT NULL;
Ο περιορισμός NOT NULL διασφαλίζει ότι μια στήλη δεν μπορεί να περιέχει μηδενικές τιμές που απαιτούν κάθε γραμμή του πίνακα να έχει μια μη μηδενική τιμή για τη συγκεκριμένη στήλη.
Απαιτήσεις σεμιναρίου:
Για να ακολουθήσετε μαζί με τις οδηγίες που παρέχονται σε αυτήν την ανάρτηση, υποθέτουμε ότι έχετε τις ακόλουθες απαιτήσεις:
- Εγκατεστημένος διακομιστής PostgreSQL στον υπολογιστή σας
- Βασικές γνώσεις SQL
- Άδεια δημιουργίας αντικειμένων πίνακα βάσης δεδομένων, όπως περιορισμοί, συναρτήσεις κ.λπ
Παράδειγμα πίνακα:
Ας ξεκινήσουμε με τη δημιουργία ενός δείγματος πίνακα με στήλες που περιέχουν έναν όχι μηδενικό περιορισμό. Ακολουθήστε την ακόλουθη δήλωση δημιουργίας πίνακα που δημιουργεί έναν βασικό πίνακα που μοιάζει με τον πίνακα wp_users στο WordPress:
ΔΗΜΙΟΥΡΓΙΑ ΠΙΝΑΚΑ wp_users (
Αναγνωριστικό ΣΕΙΡΙΚΟ ΚΥΡΙΟ ΚΛΕΙΔΙ,
user_login VARCHAR(60) NOT NULL,
user_pass VARCHAR(255) NOT NULL,
user_nicename VARCHAR(50) NOT NULL,
user_email VARCHAR(100) NOT NULL,
user_url VARCHAR(100),
user_registered TIMESTAMP NOT NULL DEFAULT current_timestamp,
user_activation_key VARCHAR(255),
user_status INT NOT NULL DEFAULT 0,
display_name VARCHAR(250) NOT NULL
)
Από το συγκεκριμένο ερώτημα, θα παρατηρήσετε ότι οι περισσότερες στήλες περιέχουν έναν περιορισμό NOT NULL.
Η πιο αποτελεσματική μέθοδος δημιουργίας ενός περιορισμού NOT NULL σε μια δεδομένη στήλη είναι κατά τη δημιουργία του πίνακα. Αυτό διασφαλίζει ότι όλα τα δεδομένα που προστίθενται στον πίνακα συμμορφώνονται με τους κανόνες του περιορισμού.
Ωστόσο, εάν προσθέσετε έναν περιορισμό σε έναν υπάρχοντα πίνακα, οι κανόνες ισχύουν μόνο για τα δεδομένα που προστίθενται μετά τον περιορισμό και όχι για τυχόν υπάρχοντα δεδομένα. Αυτό μπορεί να οδηγήσει σε ασυνέπειες, ειδικά σε μεγάλους πίνακες.
Προσθέστε έναν περιορισμό NOT NULL
Σε ορισμένες περιπτώσεις, μπορεί να θέλετε να προσθέσετε έναν περιορισμό NOT NULL σε έναν υπάρχοντα πίνακα. Για παράδειγμα, μπορείτε να χρησιμοποιήσετε την εντολή ALTER TABLE ακολουθούμενη από τον όρο ALTER COLUMN.
Η σύνταξη έχει ως εξής:
ALTER TABLE table_nameΑΛΛΑΓΗ ΣΤΗΛΗΣ Όνομα_στήλης ΟΡΙΣΘΗΚΕ ΔΕΝ ΜΗΝΟΥΛ.
Αντικαταστήστε τον πίνακα_όνομα με τον πίνακα προορισμού και το όνομα_στήλης με τη στήλη προορισμού στην οποία θέλετε να εφαρμόσετε τον περιορισμό.
Επαληθεύστε τον περιορισμό
Μπορείτε να επαληθεύσετε ότι ο περιορισμός υπάρχει σε έναν δεδομένο πίνακα χρησιμοποιώντας την εντολή '\d' στο βοηθητικό πρόγραμμα PSQL.
\d όνομα_πίνακαΠαράδειγμα:
sample_db=# \d wp_users;Η έξοδος που προκύπτει είναι η εξής:
Καταργήστε τον περιορισμό NOT NULL
Μπορεί επίσης να θέλετε να καταργήσετε τον περιορισμό NOT NULL από μια δεδομένη στήλη. Για αυτό, μπορούμε να χρησιμοποιήσουμε τις προτάσεις ALTER TABLE και ALTER COLUMN ως εξής:
ALTER TABLE table_nameΑΛΛΑΓΗ ΣΤΗΛΗΣ Όνομα_στήλης ΑΠΟΨΗ ΟΧΙ ΜΗΝΥΛΛΟ.
Για παράδειγμα, για να καταργήσουμε τον περιορισμό NOT NULL από τη στήλη user_url του πίνακα wp_users, μπορούμε να εκτελέσουμε το ακόλουθο ερώτημα:
ΑΛΛΑΓΗ ΠΙΝΑΚΑ wp_users ALTER COLUMN user_url ΑΠΟΔΟΣΗ ΟΧΙ NULL;Αυτό θα πρέπει να αφαιρέσει τον περιορισμό από τον πίνακα.
συμπέρασμα
Αυτό το σεμινάριο διερεύνησε πώς μπορούμε να εργαστούμε με τον περιορισμό NOT NOLL στην PostgreSQL. Εξερευνήσαμε επίσης πώς να απορρίψουμε έναν υπάρχοντα περιορισμό NOT NULL από μια δεδομένη στήλη.