Oracle
 sql >> Database >  >> RDS >> Oracle

Come posso eliminare un vincolo non nullo in Oracle quando non conosco il nome del vincolo?

alter table MYTABLE modify (MYCOLUMN null);

In Oracle, i vincoli non nulli vengono creati automaticamente quando non viene specificato null per una colonna. Allo stesso modo, vengono eliminati automaticamente quando la colonna viene modificata per consentire valori null.

Chiarire la domanda modificata :questa soluzione si applica solo ai vincoli creati per le colonne "non null". Se specifichi "Chiave primaria" o un vincolo di controllo nella definizione della colonna senza nominarlo, ti ritroverai con un nome generato dal sistema per il vincolo (e l'indice, per la chiave primaria). In questi casi, dovresti conoscere il nome per eliminarlo. Il miglior consiglio è quello di evitare lo scenario assicurandosi di specificare un nome per tutti i vincoli diversi da "non null". Se ti trovi nella situazione in cui devi eliminare genericamente uno di questi vincoli, probabilmente dovrai ricorrere a PL/SQL e alle tabelle di definizione dei dati.