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

Sao chép hàng và thay đổi một tập hợp nhỏ các cột?

LƯU Ý:Câu trả lời này dành cho SQL Server. thẻ đã được thêm vào câu hỏi sau câu trả lời này

Tôi sẽ giả định rằng bảng của bạn có IDENTITY cột đó cũng là khóa chính, theo nguyên tắc của thiết kế tốt. Cũng giả sử rằng nó không không có các cột được tính toán (hoặc dấu thời gian hoặc bất kỳ loại nào sẽ yêu cầu nhiều thao tác hơn). Cuối cùng, hãy giả sử rằng bạn biết ít nhất tên của cột ID này, là tiêu chuẩn, ví dụ:"id ".

Bạn có thể sử dụng trình tự này:

SELECT * INTO #tmp FROM tbl WHERE id = @copyfrom;
ALTER TABLE #tmp DROP COLUMN id;
UPDATE #tmp SET
   column1 = ...,
   column2 = ...,
   column3 = ...;  --- the subset of columns you want to change
INSERT tbl SELECT * FROM #tmp;

Bản trình diễn SQL Fiddle



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nhận danh sách tất cả các bảng trong Oracle?

  2. 12c Các tính năng không được dùng nữa

  3. Chèn ngày vào Oracle

  4. Oracle CONNECT BY đệ quy con với truy vấn cha, bao gồm cha mẹ cuối cùng tự tham chiếu

  5. Bạn có thể sử dụng các tham số được đặt tên trong Laravel Eloquent không