Oracle
 sql >> Baza danych >  >> RDS >> Oracle

utwórz tabelę z wybraną unią nie ma ograniczeń

Używając select ... as ... utworzyć tabelę nigdy kopiuje wiązania. Jeśli chcesz, aby nowa tabela dziedziczyła ograniczenia z oryginalnych tabel, musisz ręcznie utworzyć nowe ograniczenia.

Jak wskazuje @Davek, not null ograniczenia zostaną skopiowane z pojedynczej tabeli select ... as ... . Wyobrażam sobie, że dzieje się tak, ponieważ są to zarówno atrybuty kolumn, jak i ograniczenia. Jednak gdy kolumna ma więcej niż jedno źródło, rozsądne jest, aby Oracle nie próbował zastosować tego ograniczenia.

W odpowiedzi na pytanie uzupełniające „czy byłoby możliwe podanie tableC te same ograniczenia z tableA lub tableB , po wezwaniu do działania?”:

Oczywiście jest to możliwe, ale nie ma jednej komendy, aby to zrobić. Możesz napisać procedurę, która używa dynamicznego SQL do kopiowania ograniczeń. Jeśli jednak nie chcesz zautomatyzować tego zachowania, zazwyczaj łatwiej będzie wyodrębnić DDL za pomocą IDE i zmienić nazwę tabeli.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Obsługa wyjątków w procedurze z zagnieżdżonymi funkcjami w pl/sql

  2. Jak uciec od regexp_replace w Oracle?

  3. Rzeczy, które powinieneś wiedzieć przed nauką Oracle

  4. jak zwiększyć długość kolumny sqlplus?

  5. PLSQL :NOWY i :STARY