Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

tạo bảng với công đoàn chọn không có ràng buộc

Sử dụng select ... as ... để tạo bảng không bao giờ sao chép các ràng buộc. Nếu bạn muốn bảng mới kế thừa các ràng buộc từ các bảng ban đầu, bạn phải tạo các ràng buộc mới theo cách thủ công.

Như @Davek đã chỉ ra, not null các ràng buộc sẽ được sao chép từ một bảng duy nhất select ... as ... . Tôi tưởng tượng đó là bởi vì chúng đều là thuộc tính cột và ràng buộc. Tuy nhiên, khi cột có nhiều hơn một nguồn, thì điều hợp lý là Oracle sẽ không cố gắng áp dụng ràng buộc đó.

Để trả lời cho câu hỏi tiếp theo "có thể đưa ra tableC các ràng buộc giống nhau từ tableA hoặc tableB , sau một CTA? ":

Tất nhiên là có thể, nhưng không có lệnh nào để làm điều đó. Bạn có thể viết một thủ tục sử dụng SQL động để sao chép các ràng buộc. Tuy nhiên, trừ khi bạn đang tìm cách tự động hóa hành vi này, nói chung sẽ dễ dàng hơn để trích xuất DDL bằng IDE và thay đổi tên bảng.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Yêu cầu được đặt trong Trình quản lý đồng thời

  2. Lọc ra các bản ghi không có trong oracle định dạng ngày tháng này

  3. Oracle Chèn truy vấn trong thủ tục được lưu trữ không hoạt động khi được gọi từ mã phía sau

  4. Cách điền tập dữ liệu với C # từ cơ sở dữ liệu oracle

  5. Làm cách nào để chia một cột varchar thành nhiều giá trị trong SQL?