ORACLE CONTROLLO VINGLIO

ORACLE CONTROLLO VINGLIO

L'integrità del dominio dei dati o l'integrità del dominio sono una funzione di database che garantisce che tutti i dati forniti in una colonna tabella aderiscano a un set definito di valori validi. Questa funzione minimizza la corruzione dei dati e duplica i valori in un determinato database.

In questo tutorial, imparerai come far rispettare l'integrità del dominio nel tuo database Oracle utilizzando il vincolo di controllo.

ORACLE CONTROLLO VINGLIO

Un vincolo di controllo ci consente di definire espressioni logiche che possono restituire vere o false. Il motore del database valuterà quindi tutti i dati inseriti o aggiornati in quella colonna per garantire che aderiscano alle regole di espressione.

Se i dati aderiscono alle regole di espressione, il motore del database accetta i dati e consente l'istruzione insert o aggiornamento. In caso contrario, se i dati non rispettano le leggi, il motore del database rifiuta i dati e nega l'operazione di inserto o aggiornamento.

Una singola colonna può avere uno o più vincoli di controllo, a condizione che non siano in conflitto con gli altri vincoli di controllo esistenti. Inoltre, non si dovrebbe assumere l'ordine di valutazione dell'espressione.

Allo stesso modo, puoi avere più di una colonna con un vincolo di controllo.

Regole di un vincolo di assegno in Oracle

Quando si definisce un vincolo di controllo nei database Oracle, assicurarsi:

  1. Il vincolo di controllo è definito su una tabella Oracle e non una vista.
  2. Il vincolo di controllo deve fare riferimento solo alle colonne in quella tabella e non alle tabelle straniere.
  3. Un vincolo di assegno non può essere definito in una sottoquery.
  4. Un'espressione del vincolo di controllo non può includere funzioni non deterministiche, funzioni definite dall'utente, tabelle nidificate, colonne pseudo o attributi nidificati.

Oracle Crea vincolo di controllo

Si consiglia di creare un vincolo di controllo durante la creazione di una tabella. Ciò garantisce che tutti i dati inseriti o aggiornati nella tabella corrispondano alle regole del vincolo.

Di seguito è riportata la sintassi per l'aggiunta di un vincolo di controllo durante la creazione della tabella:

Crea table table_name (
colonne,
column_name, data_type check (vincente_expression);
);

Per definire un vincolo di controllo, iniziamo con il nome della colonna su cui desideriamo applicare il vincolo-next, il tipo di dati della colonna e la parola chiave di controllo. Infine, l'espressione del vincolo è fornita all'interno di una coppia di parentesi.

Sebbene non necessario, a volte potrebbe essere necessario assegnare manualmente un identificatore univoco al vincolo di controllo; In tale scenario, è possibile utilizzare la dichiarazione di vincolo:

Crea table table_nam (
colonne
Vincolo vincolante_name
Controllo (vincolo_espressione)
);

Oracle crea un esempio di vincolo

Il seguente esempio crea una tabella dei prodotti con un vincolo di controllo che garantisce che lo stock sia sempre disponibile:

Crea prodotti da tavolo (
Numero Product_id generato per impostazione predefinita come identità,
Product_name Varchar2 (255) non null,
Numero di quantità non controllo null (quantità> 0),
numero di prezzo,
Chiave primaria (Product_id)
);

Nella tabella sopra, definiamo la colonna di quantità con un vincolo di controllo che garantisce che il valore dei dati di quella colonna sia maggiore di 0.

In tal caso, il vincolo garantisce che i prodotti memorizzati nel database siano sempre disponibili.

Se tentiamo di aggiungere un record in cui la quantità è 0 o un numero negativo, Oracle restituirà un errore e fallirà la richiesta di inserimento.

Esempio:

INSERT IN Products (Product_name, quantità, prezzo) Valori ('Microsoft Volterra', 0, 599);

La richiesta di cui sopra restituisce un errore:

Errore SQL [2290] [23000]: ORA-02290: controlla il vincolo (HR.Sys_c007662) violato

Vincolo di controllo del drop Oracle

Una volta che non hai più bisogno di un vincolo di controllo sul tavolo, puoi lasciarlo cadere dalla tabella usando l'alter

Comando di vincolo di caduta della tabella:
Alter table table_name
Drop vintrint vincolante_name;

Oracle Disabilita Controllo vincolo

A volte, potresti voler disabilitare temporaneamente un vincolo senza rimuoverlo dal tavolo. Usa il comando:

Alter table table_name
Disabilitare vincoli vincoli_name;

Oracle Abilita Controllo vincolo

Per abilitare un vincolo di controllo inattivo, eseguire quanto segue:

Alter table table_name
Abilitare vincoli vincoli_name;

Conclusione

In questo tutorial, hai scoperto come utilizzare il vincolo di controllo nei database Oracle per consentire solo i valori che corrispondono a una condizione specifica da aggiungere o aggiornare in una determinata tabella.