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

Có cách nào để thêm cột tại một vị trí được chỉ định trong bảng Oracle không?

Nó thực sự không quan trọng vị trí của cột về mặt vật lý kể từ khi select sẽ cho phép bạn chỉ định thứ tự (một cách hợp lý) mà chúng được truy xuất.

Và, nếu bạn đang sử dụng select * điều này không cho phép bạn chỉ định thứ tự, bạn có thể không nên như vậy. Có một số tình huống quý giá mà bạn nên làm điều đó (ví dụ:các công cụ phân tích DB), hầu hết thời gian tốt hơn là chọn các cột riêng lẻ bạn muốn, ngay cả khi bạn muốn tất cả. Điều này cho phép bạn nắm bắt các thay đổi giản đồ một cách nhanh chóng để bạn có thể điều chỉnh các chương trình của mình cho phù hợp với chúng.

Trong mọi trường hợp, bản thân SQL không đảm bảo về thứ tự các cột được trả về trừ khi bạn rõ ràng liệt kê chúng. select * có thể đưa chúng cho bạn theo thứ tự ngày hôm nay và thứ tự bảng chữ cái vào ngày mai. Ngay cả khi một triển khai cụ thể cho phép bạn làm điều đó (bằng cách tạo một bảng mới với cột ở vị trí "bên phải" và sao chép dữ liệu qua hoặc cung cấp phần mở rộng SQL như bảng thay đổi T chèn cột C1 trước C2 ), Tôi khuyên bạn không nên làm như vậy. Nó sẽ không di động đối với các triển khai khác và tôi muốn có mã của mình càng di động càng tốt.

Ngoài ra, ngoài những gì bạn có thể chỉ định trong SQL, DBMS sẽ có thể kiểm soát hoàn toàn cách thức nó lưu trữ dữ liệu. Có thể khóa chính của bạn là tổ hợp của cột thứ bảy và cột bốn mươi giây và có thể hiệu quả hơn nếu đặt chúng ở đầu các bản ghi vật lý.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Các quan điểm vật chất hóa là gì?

  2. Tại sao GETDATE () là số nhận dạng không hợp lệ

  3. Chọn nhân viên có ngày sinh trong phạm vi nhất định bằng Oracle SQL

  4. SQLPlus đang cố gắng giảm gói hai lần

  5. Oracle 11g - Vòng lặp FOR chỉ chèn các ngày trong tuần vào một bảng?