Καταργήστε τον περιορισμό NOT NULL στο Postgres

Katargeste Ton Periorismo Not Null Sto Postgres



Σε σχεσιακές βάσεις δεδομένων όπως η PostgreSQL, οι περιορισμοί είναι ζωτικής σημασίας για τη διατήρηση της ακεραιότητας των δεδομένων και την επιβολή συγκεκριμένων κανόνων στις στήλες του πίνακα. Ένας τέτοιος περιορισμός είναι ο περιορισμός 'NOT NULL'. Σε αυτό το σεμινάριο, θα διερευνήσουμε την έννοια του περιορισμού NOT NULL και θα παρέχουμε έναν οδηγό βήμα προς βήμα για τη δημιουργία και την κατάργησή του στην PostgreSQL.

Τι είναι ένας περιορισμός NOT NULL;

Ο περιορισμός NOT NULL διασφαλίζει ότι μια στήλη δεν μπορεί να περιέχει μηδενικές τιμές που απαιτούν κάθε γραμμή του πίνακα να έχει μια μη μηδενική τιμή για τη συγκεκριμένη στήλη.

Απαιτήσεις σεμιναρίου:

Για να ακολουθήσετε μαζί με τις οδηγίες που παρέχονται σε αυτήν την ανάρτηση, υποθέτουμε ότι έχετε τις ακόλουθες απαιτήσεις:







  1. Εγκατεστημένος διακομιστής PostgreSQL στον υπολογιστή σας
  2. Βασικές γνώσεις SQL
  3. Άδεια δημιουργίας αντικειμένων πίνακα βάσης δεδομένων, όπως περιορισμοί, συναρτήσεις κ.λπ

Παράδειγμα πίνακα:

Ας ξεκινήσουμε με τη δημιουργία ενός δείγματος πίνακα με στήλες που περιέχουν έναν όχι μηδενικό περιορισμό. Ακολουθήστε την ακόλουθη δήλωση δημιουργίας πίνακα που δημιουργεί έναν βασικό πίνακα που μοιάζει με τον πίνακα 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 από μια δεδομένη στήλη.