sql >> Databasteknik >  >> RDS >> Oracle

Hur kan jag ta bort en icke-null-begränsning i Oracle när jag inte vet namnet på begränsningen?

alter table MYTABLE modify (MYCOLUMN null);

I Oracle skapas inte null-begränsningar automatiskt när inte null anges för en kolumn. På samma sätt tas de bort automatiskt när kolumnen ändras för att tillåta nollor.

Förtydligande av den reviderade frågan :Den här lösningen gäller endast för begränsningar som skapats för "inte null"-kolumner. Om du anger "Primärnyckel" eller en kontrollbegränsning i kolumndefinitionen utan att namnge den, kommer du att få ett systemgenererat namn för begränsningen (och indexet för primärnyckeln). I dessa fall måste du känna till namnet för att släppa det. Det bästa rådet som finns är att undvika scenariot genom att se till att du anger ett namn för alla andra restriktioner än "inte null". Om du hamnar i den situationen att du generellt behöver släppa en av dessa begränsningar, måste du antagligen ta till PL/SQL och datadefinitionstabellerna.



  1. Oracle Entity Framework - Generera entitet från tabeller i olika scheman

  2. Hur du kontrollerar din SQL Server-version

  3. Finns det något sätt att få radnumret i Mysql som rownumret i oracle

  4. Enum i Hibernate, kvarstår som en enum