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

Làm cách nào để chèn một cột vào một vị trí cụ thể trong oracle mà không làm rơi và tạo lại bảng?

Amit-

Tôi không tin rằng bạn có thể thêm một cột ở bất kỳ đâu nhưng ở cuối bảng sau khi bảng được tạo. Một giải pháp có thể là thử điều này:

CREATE TABLE MY_TEMP_TABLE AS
SELECT *
FROM TABLE_TO_CHANGE;

Thả bảng bạn muốn thêm cột vào:

DROP TABLE TABLE_TO_CHANGE;

Đó là lúc bạn có thể xây dựng lại bảng hiện có từ đầu, thêm các cột mà bạn muốn. Hãy giả sử cho bài tập này, bạn muốn thêm các cột có tên "COL2 và COL3".

Bây giờ, hãy chèn lại dữ liệu vào bảng mới:

INSERT INTO TABLE_TO_CHANGE (COL1, COL2, COL3, COL4) 
SELECT COL1, 'Foo', 'Bar', COL4
FROM MY_TEMP_TABLE;

Khi dữ liệu được chèn vào bảng "mới-cũ", bạn có thể bỏ bảng tạm thời.

DROP TABLE MY_TEMP_TABLE;

Đây thường là những gì tôi làm khi muốn thêm các cột ở một vị trí cụ thể. Rõ ràng nếu đây là một hệ thống sản xuất trên dây chuyền thì có lẽ nó không thực tế, mà chỉ là một ý tưởng tiềm năng.

-CJ



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tại sao lại sử dụng mệnh đề JOIN thay vì điều kiện WHERE?

  2. SQL không nhận ra bí danh cột trong mệnh đề where

  3. Cách chuyển đổi hàng thành cột trong bảng Oracle

  4. Làm thế nào để lấy ngày hiện tại trong PL / SQL?

  5. Hàm TRIM () trong Oracle