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

Masukkan banyak Data ke MySQL dan Perbarui jika ada

Yang diperlukan hanyalah satu bentrokan indeks yang akan melanggar duplikat untuk baris yang akan diperbarui, dan bukan untuk membuat baris baru. Bentrokan indeks bisa menjadi kunci utama, satu di indeks lain baik itu satu kolom atau indeks komposit di beberapa kolom.

Memang di bawah ini agak timpang, tapi imajinatif yang bisa saya lakukan sekarang.

create table user
(
    id int auto_increment primary key,
    userName varchar(20) not null,
    friendCount int not null,
    unique key(userName)
);

insert user(userName,friendCount) values('Jason7',0) on duplicate key update friendCount=friendCount+1;
select * from user;
+----+----------+-------------+
| id | userName | friendCount |
+----+----------+-------------+
|  1 | Jason7   |           0 |
+----+----------+-------------+

insert user(userName,friendCount) values('Fred',0) on duplicate key update friendCount=friendCount+1;
select * from user;
+----+----------+-------------+
| id | userName | friendCount |
+----+----------+-------------+
|  1 | Jason7   |           0 |
|  2 | Fred     |           0 |
+----+----------+-------------+

insert user(userName,friendCount) values('Fred',0) on duplicate key update friendCount=friendCount+1;
+----+----------+-------------+
| id | userName | friendCount |
+----+----------+-------------+
|  1 | Jason7   |           0 |
|  2 | Fred     |           1 |
+----+----------+-------------+



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Mengimpor Database Menggunakan phpMyAdmin

  2. Bagaimana saya bisa memilih semua data dari tabel dengan kondisi?

  3. Apa itu mesin database MySQL?

  4. MySQL memuat data:Perintah ini belum didukung dalam protokol pernyataan yang disiapkan

  5. Bagaimana mencegah kerusakan found_rows terpilih pada kondisi balapan?