Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Wstaw wiele danych do MySQL i zaktualizuj, jeśli istnieją

Wystarczy jedno kolizja indeksu, która naruszyłaby duplikat w celu aktualizacji wiersza, a nie w celu utworzenia nowego wiersza. Kolizja indeksów może być kluczem podstawowym, kluczem do innego indeksu, czy to w pojedynczej kolumnie, czy w indeksie złożonym w wielu kolumnach.

Przyznaję, że poniższy tekst jest dość kiepski, ale tak pomysłowy, jak tylko mogę teraz.

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. Nie można zainstalować pakietu mysqlclient Python w systemie Windows

  2. Jak korzystać z aws athena za pomocą nodejs?

  3. 60 milionów wpisów, wybierz wpisy z określonego miesiąca. Jak zoptymalizować bazę danych?

  4. Self Joins w Mysql... Jak mam dołączyć do tego stołu?

  5. PHP mySQL sprawdza, czy nazwa użytkownika i hasło są w bazie danych