Ini adalah solusi di mana Anda memiliki banyak bidang di meja Anda dan tidak ingin mendapatkan jari kram karena mengetik semua bidang, cukup ketik yang dibutuhkan :)
Cara menyalin beberapa baris ke tabel yang sama, dengan beberapa bidang memiliki nilai yang berbeda:
- Buat tabel sementara dengan semua baris yang ingin Anda salin
- Perbarui semua baris dalam tabel sementara dengan nilai yang Anda inginkan
- Jika Anda memiliki bidang kenaikan otomatis, Anda harus mengaturnya ke NULL di tabel sementara
- Salin semua baris tabel sementara ke tabel asli Anda
- Hapus tabel sementara
Kode Anda:
CREATE table temporary_table AS SELECT * FROM original_table WHERE Event_ID="155";
UPDATE temporary_table SET Event_ID="120";
UPDATE temporary_table SET ID=NULL
INSERT INTO original_table SELECT * FROM temporary_table;
DROP TABLE temporary_table
Kode skenario umum:
CREATE table temporary_table AS SELECT * FROM original_table WHERE <conditions>;
UPDATE temporary_table SET <fieldx>=<valuex>, <fieldy>=<valuey>, ...;
UPDATE temporary_table SET <auto_inc_field>=NULL;
INSERT INTO original_table SELECT * FROM temporary_table;
DROP TABLE temporary_table
Kode sederhana / kental:
CREATE TEMPORARY TABLE temporary_table AS SELECT * FROM original_table WHERE <conditions>;
UPDATE temporary_table SET <auto_inc_field>=NULL, <fieldx>=<valuex>, <fieldy>=<valuey>, ...;
INSERT INTO original_table SELECT * FROM temporary_table;
Karena pembuatan tabel sementara menggunakan TEMPORARY
kata kunci itu akan turun secara otomatis ketika sesi selesai (seperti yang disarankan @ ar34z).