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

Utworzyć, jeśli wpis nie istnieje, w przeciwnym razie zaktualizować?

Wielu programistów nadal wykonuje zapytanie, aby sprawdzić, czy pole jest obecne w tabeli, a następnie wykonuje zapytanie wstawiania lub aktualizowania zgodnie z wynikiem pierwszego zapytania. Spróbuj użyć składni ON DUPLICATE KEY, jest to dużo szybsze i lepsze następnie wykonanie 2 zapytań. Więcej informacji można znaleźć tutaj

jeśli chcesz zachować tę samą wartość dla c, możesz wykonać aktualizację z tą samą wartością

różnica między „zamień” a „na zduplikowanym kluczu”:

jeśli twoja tabela nie ma klucza podstawowego lub klucza unikalnego, zamiana nie ma żadnego sensu.

Możesz również użyć VALUES funkcji, aby uniknąć konieczności dwukrotnego określania rzeczywistych wartości. Np. zamiast

INSERT INTO table (a,b,c) VALUES (4,5,6) ON DUPLICATE KEY UPDATE c=6;

możesz użyć

INSERT INTO table (a,b,c) VALUES (4,5,6) ON DUPLICATE KEY UPDATE c=VALUES(c);

Gdzie VALUES(c) oceni wartość określoną wcześniej (6).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Klient wiersza poleceń MySQL dla systemu Windows

  2. Jak sprawdzić, jakim zestawem znaków jest baza danych / tabela / kolumna MySQL?

  3. Wyświetlaj wyniki MySQL według daty

  4. Hibernacja koduje źle podczas utrwalania obiektów [UTF-8]

  5. Transakcje równoległe w mysql