Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Pindahkan data dari satu tabel MySQL ke tabel lainnya

Pertama, Anda kehilangan satu tanda kurung, yang tidak harus Anda gunakan dalam kasus ini sama sekali

Ubah string kueri Anda menjadi

Insert Into archived (select * from registrations WHERE id=$id)
                     ^                                        ^

atau hanya

Insert Into archived select * from registrations WHERE id=$id

Ini SQLFiddle demo

Kedua INSERT tidak mengembalikan hasil jadi Anda tidak boleh menggunakan mysql_fetch_array() .

Ketiga jika niat Anda adalah bergerak tidak hanya menyalin data, Anda juga perlu menghapus baris yang Anda salin setelahnya.

Sekarang Anda dapat memasukkan semuanya ke dalam prosedur tersimpan

DELIMITER $$
CREATE PROCEDURE move_to_archive(IN _id INT)
BEGIN
    START TRANSACTION;
    INSERT INTO archived 
    SELECT * 
      FROM registrations 
     WHERE id = _id;
    DELETE
      FROM registrations 
     WHERE id = _id;
    COMMIT;
END$$
DELIMITER ;

Contoh penggunaan:

CALL move_to_archive(2);

Ini SQLFiddle demo



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara menambahkan komentar ke tabel atau kolom di mysql menggunakan SQLAlchemy?

  2. Buat jumlah ROLLING selama periode waktu tertentu di mysql

  3. Woocommerce menggemakan total penjualan ritel per produk

  4. MySQL GABUNG dengan kondisi JIKA

  5. MySQL - Kunci asing saat menghapus kaskade - Apakah ada urutan eksekusi yang ditentukan?