Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Wie kann ich eine Nicht-Null-Einschränkung in Oracle löschen, wenn ich den Namen der Einschränkung nicht kenne?

alter table MYTABLE modify (MYCOLUMN null);

In Oracle werden Nicht-Null-Einschränkungen automatisch erstellt, wenn Nicht-Null für eine Spalte angegeben wird. Ebenso werden sie automatisch gelöscht, wenn die Spalte geändert wird, um Nullen zuzulassen.

Klarstellung der überarbeiteten Frage :Diese Lösung gilt nur für Einschränkungen, die für "not null"-Spalten erstellt wurden. Wenn Sie "Primary Key" oder eine Check-Einschränkung in der Spaltendefinition angeben, ohne sie zu benennen, erhalten Sie am Ende einen vom System generierten Namen für die Einschränkung (und den Index für den Primärschlüssel). In diesen Fällen müssen Sie den Namen kennen, um ihn löschen zu können. Der beste Rat besteht darin, das Szenario zu vermeiden, indem Sie sicherstellen, dass Sie für alle Einschränkungen einen anderen Namen als "nicht null" angeben. Wenn Sie sich in einer Situation befinden, in der Sie eine dieser Beschränkungen generisch aufheben müssen, müssen Sie wahrscheinlich auf PL/SQL und die Datendefinitionstabellen zurückgreifen.