Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Salin baris dan ubah sebagian kecil kolom?

CATATAN:Jawaban ini untuk SQL Server. tag ditambahkan ke pertanyaan setelah jawaban ini

Saya akan berasumsi bahwa tabel Anda memiliki IDENTITY kolom yang juga menjadi kunci utama, sesuai dengan prinsip desain yang baik. Mari kita asumsikan juga tidak telah menghitung kolom (atau stempel waktu atau jenis apa pun yang memerlukan lebih banyak manipulasi). Mari kita asumsikan bahwa Anda tahu setidaknya nama kolom ID ini, yang standar, mis. "id ".

Anda dapat menggunakan urutan ini:

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;

Demo Fiddle SQL



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PLS-00302:komponen harus dideklarasikan- Tidak dapat diselesaikan

  2. Secara otomatis menerapkan ukuran tabel basis data maksimal dengan menghapus baris lama

  3. Sisipkan/perbarui Pemicu Oracle

  4. LAST_DAY() Fungsi di Oracle

  5. jalankan skrip Oracle sql dari java