SQL goccia vincolo CHECK

December 8

Una restrizione di controllo è una regola che vale per una o più colonne di una tabella di database che controlla le informazioni nei nuovi record prima di aggiungerli alla tabella per accertarsi che soddisfi una data condizione. Se si dispone di una tabella esistente con un vincolo di controllo su di esso che non è più necessario, è possibile eliminare i vincoli di controllo tramite un SQL "ALTER TABLE" query.

Funzione

La maggior parte delle lingue SQL non hanno un comando per modificare un vincolo esistente. Ad esempio, se si dispone di una tabella di registrazione utente che ha un campo che controlla età degli utenti e impone loro di essere più vecchio di 21, non è possibile modificarlo per verificare la presenza di età over 18. L'unico modo per farlo è quello di eliminare il vincolo esistente In primo luogo, quindi aggiungere di nuovo al tavolo con una nuova condizione di controllo. In alternativa, non si può decidere di verificare la presenza di età specifiche, in modo da far cadere il vincolo si fermerà la tabella di farlo.

Sintassi

Per eliminare un vincolo di controllo da una tabella, è necessario utilizzare una query "ALTER TABLE" e specificare il vincolo che si desidera rimuovere, dando il suo nome. Ad esempio, digitando "alter clienti drop table VINCOLO check_price;" rimuove un vincolo denominato "check_price" dalla "tavola clienti. Questa query non pregiudica nulla del resto della struttura della tabella o dei dati in esso. Naturalmente, lasciando cadere una tabella da un database rimuove anche il vincolo di controllo.

oggetti dipendenti

Se la tabella ha tutti gli oggetti dipendenti, come ad esempio una vista o un trigger, non è possibile eliminare vincoli sulle colonne di riferimento da questi oggetti. È possibile includere la parola "Vieta" alla fine della query vincolo goccia per far rispettare questo comportamento, ma conservando i vincoli con dipendenze è già l'azione predefinita quando si tenta di eliminare un vincolo. Per forzare il vincolo di controllo per cadere a prescindere delle dipendenze, è necessario includere la parola chiave "a cascata", alla fine della query vincolo goccia.

conseguenze

Eliminazione di un vincolo di controllo da una tabella amplia la gamma di dati che è possibile inserire in uno o più campi come la tabella non controlla le query per i dati che soddisfa determinate condizioni. Tuttavia, questo può compromettere tutti i record esistenti o future aggiunte al database. Ad esempio, se si dispone di una tabella utente che richiede ai membri di avere almeno 21 anni e si lascia cadere il vincolo di età che controlla per questo requisito, tutti i nuovi record con i valori dei campi di età inferiore a 21 possono essere inseriti nella tabella.