Rimuovi il vincolo NOT NULL in Postgres

Rimuovi Il Vincolo Not Null In Postgres



Nei database relazionali come PostgreSQL, i vincoli sono cruciali per mantenere l'integrità dei dati e applicare regole specifiche sulle colonne della tabella. Uno di questi vincoli è il vincolo 'NOT NULL'. In questo tutorial, esploreremo il concetto del vincolo NOT NULL e forniremo una guida dettagliata su come crearlo e rimuoverlo in PostgreSQL.

Che cos'è un vincolo NOT NULL?

Il vincolo NOT NULL garantisce che una colonna non possa contenere valori nulli che richiedono che ogni riga della tabella abbia un valore non nullo per quella particolare colonna.

Requisiti dell'esercitazione:

Per seguire le istruzioni fornite in questo post, assumiamo che tu abbia i seguenti requisiti:







  1. Server PostgreSQL installato sulla tua macchina
  2. Conoscenza base di SQL
  3. Autorizzazione a creare gli oggetti della tabella del database come vincoli, funzioni, ecc

Tabella di esempio:

Iniziamo impostando una tabella di esempio con colonne che contengono un vincolo non nullo. Prendi la seguente istruzione create table che imposta una tabella di base che assomiglia alla tabella wp_users in WordPress:



CREATE TABLE wp_users (
ID SERIALE CHIAVE PRIMARIA,
login_utente VARCHAR(60) NOT NULL,
user_pass VARCHAR(255) NOT NULL,
user_nicename VARCHAR(50) NOT NULL,
email_utente VARCHAR(100) NOT NULL,
url_utente VARCHAR(100),
user_registered TIMESTAMP NOT NULL DEFAULT current_timestamp,
chiave_attivazione_utente VARCHAR(255),
stato_utente INT NOT NULL DEFAULT 0,
nome_visualizzato VARCHAR(250) NOT NULL
);

Dalla query data, noterai che la maggior parte delle colonne contiene un vincolo NOT NULL.



Il metodo più efficiente per creare un vincolo NOT NULL in una data colonna è durante la creazione della tabella. Ciò garantisce che tutti i dati aggiunti alla tabella aderiscano alle regole del vincolo.





Tuttavia, se aggiungi un vincolo a una tabella esistente, le regole si applicano solo ai dati aggiunti dopo il vincolo e non ai dati esistenti. Ciò può portare a incoerenze, specialmente nelle tabelle di grandi dimensioni.

Aggiungere un vincolo NOT NULL

In alcuni casi, potresti voler aggiungere un vincolo NOT NULL a una tabella esistente. Ad esempio, è possibile utilizzare il comando ALTER TABLE seguito dalla clausola ALTER COLUMN.



La sintassi è la seguente:

ALTER TABLE nome_tabella
ALTER COLUMN nome_colonna SET NOT NULL;

Sostituisci table_name con la tua tabella di destinazione e column_name con la colonna di destinazione a cui desideri applicare il vincolo.

Verificare il vincolo

È possibile verificare che il vincolo esista su una determinata tabella utilizzando il comando '\d' nell'utilità PSQL.

\d nome_tabella

Esempio:

sample_db=# \d wp_users;

L'output risultante è il seguente:

Rimuovere il vincolo NOT NULL

Potresti anche voler rimuovere il vincolo NOT NULL da una data colonna. Per questo, possiamo usare le clausole ALTER TABLE e ALTER COLUMN come segue:

ALTER TABLE nome_tabella
ALTER COLUMN nome_colonna DROP NOT NULL;

Ad esempio, per rimuovere il vincolo NOT NULL dalla colonna user_url della tabella wp_users, possiamo eseguire la seguente query:

ALTER TABLE wp_users ALTER COLUMN user_url DROP NOT NULL;

Questo dovrebbe eliminare il vincolo dalla tabella.

Conclusione

Questo tutorial ha esplorato come possiamo lavorare con il vincolo NOT NOLL in PostgreSQL. Abbiamo anche esplorato come eliminare un vincolo NOT NULL esistente da una data colonna.