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

Di MySQL, dapatkah saya menyalin satu baris untuk dimasukkan ke dalam tabel yang sama?

Saya menggunakan teknik Leonard Challis dengan beberapa perubahan:

CREATE TEMPORARY TABLE tmptable_1 SELECT * FROM table WHERE primarykey = 1;
UPDATE tmptable_1 SET primarykey = NULL;
INSERT INTO table SELECT * FROM tmptable_1;
DROP TEMPORARY TABLE IF EXISTS tmptable_1;

Sebagai tabel sementara, tidak boleh ada lebih dari satu catatan, jadi Anda tidak perlu khawatir tentang kunci utama. Menyetelnya ke null memungkinkan MySQL untuk memilih nilainya sendiri, sehingga tidak ada risiko membuat duplikat.

Jika Anda ingin sangat yakin bahwa Anda hanya mendapatkan satu baris untuk disisipkan, Anda dapat menambahkan LIMIT 1 ke akhir baris INSERT INTO.

Perhatikan bahwa saya juga menambahkan nilai kunci utama (1 dalam kasus ini) ke nama tabel sementara saya.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sistem pengaturan ulang kata sandi di PHP

  2. #1071 - Kunci yang ditentukan terlalu panjang; panjang kunci maksimal adalah 1000 byte

  3. Bagaimana menghubungkan jarak jauh ke database MySQL yang terletak di server bersama kami

  4. Akses database jarak jauh mysql dari baris perintah

  5. Fungsi Agregat MySQL tanpa klausa GROUP BY