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

MySql - PADA DUPLICATE KEY INSERT

Dengan ON DUPLICATE KEY UPDATE , Anda tidak dapat menyisipkan ke tabel lain - juga tidak ada fungsi alternatif yang tersedia.

Dua cara khusus/alternatif yang dapat Anda lakukan:

  1. Menggunakan stored procedure sebagaimana diuraikan dalam jawaban yang diterima untuk pertanyaan ini:MySQL ON DUPLICATE KEY masukkan ke dalam audit atau tabel log

  2. Membuat trigger yang mencatat setiap INSERT untuk tabel Anda ke tabel lain dan kueri tabel yang penuh dengan "log" untuk duplikat apa pun.

Sesuatu yang mirip dengan ini seharusnya berfungsi:

CREATE TABLE insert_logs (
    id int not null
);

delimiter |
CREATE TRIGGER insert_logs_trigger BEFORE INSERT ON your_table
    FOR EACH ROW BEGIN
        INSERT INTO insert_logs SET id = NEW.id;
    END;
|

Untuk mendapatkan daftar duplikat dalam tabel, Anda dapat kami:

SELECT id FROM insert_logs HAVING COUNT(id) > 1 GROUP BY id;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Memeriksa beberapa kolom untuk satu nilai

  2. Alternatif Meja Kerja MySQL - Manajemen Konfigurasi ClusterControl

  3. Enkripsi AES di mysql dan php

  4. Bagaimana cara meneruskan daftar ID ke prosedur tersimpan MySQL?

  5. Docker tidak dapat menghubungkan aplikasi ke MySQL