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

Memperbarui kunci utama MySQL

Lain kali, gunakan satu pernyataan "ubah tabel" untuk memperbarui kunci utama.

alter table xx drop primary key, add primary key(k1, k2, k3);

Untuk memperbaiki beberapa hal:

create table fixit (user_2, user_1, type, timestamp, n, primary key( user_2, user_1, type) );
lock table fixit write, user_interactions u write, user_interactions write;

insert into fixit 
select user_2, user_1, type, max(timestamp), count(*) n from user_interactions u 
group by user_2, user_1, type
having n > 1;

delete u from user_interactions u, fixit 
where fixit.user_2 = u.user_2 
  and fixit.user_1 = u.user_1 
  and fixit.type = u.type 
  and fixit.timestamp != u.timestamp;

alter table user_interactions add primary key (user_2, user_1, type );

unlock tables;

Kunci harus menghentikan pembaruan lebih lanjut yang masuk saat Anda melakukan ini. Berapa lama waktu yang dibutuhkan jelas tergantung pada ukuran meja Anda.

Masalah utamanya adalah jika Anda memiliki beberapa duplikat dengan stempel waktu yang sama.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Membangun aplikasi Android untuk menjalankan PHP dan MySQL di Tablet Android

  2. MySQL alias untuk SELECT * kolom

  3. Bagaimana cara memastikan tidak ada kondisi balapan di database MySQL saat menambah bidang?

  4. Cara mengosongkan database MySQL

  5. mysql:gunakan SET atau banyak kolom?