Oracle
 sql >> база данни >  >> RDS >> Oracle

създаване на таблица с избрано обединение няма ограничения

Използвайки select ... as ... за създаване на таблица никога копира ограничения. Ако искате новата таблица да наследи ограничения от оригиналните таблици, трябва да създадете новите ограничения ръчно.

Както посочва @Davek, not null ограниченията ще бъдат копирани от една таблица select ... as ... . Предполагам, че това е така, защото те са и атрибути на колони, и ограничения. Въпреки това, след като колоната има повече от един източник, е разумно Oracle да не се опитва да приложи това ограничение.

В отговор на последващия въпрос „би ли било възможно да се даде tableC същите ограничения или от tableA или tableB , след CTA?":

Разбира се, че е възможно, но няма една единствена команда, която да го направи. Можете да напишете процедура, която използва динамичен SQL за копиране на ограниченията. Въпреки това, освен ако не искате да автоматизирате това поведение, обикновено ще бъде по-лесно да извлечете DDL с помощта на IDE и да промените името на таблицата.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Съвместимост на Oracle Client и ODP.NET версия

  2. Таблица, извлечена от Oracle sql - незадължително псевдоним

  3. Как да премахнете невалидна връзка с база данни от пула

  4. Как най-добре да се изчислят агрегирани данни на n-ниво въз основа на (n-1) данни на ниво (Oracle)

  5. ORA-01779:не може да модифицира колона, която съответства на таблица без запазен ключ