Mysql
 sql >> база данни >  >> RDS >> Mysql

mysql създава нов ред, вместо да актуализира съществуващия

Можете директно да UPDATE ако стойността вече съществува или INSERT ако не съществува чрез INSERT...ON DUPLICATE KEY UPDATE

Но първо трябва да зададете уникална колона,

ALTER TABLE user_account ADD CONSTRAINT tb_uq UNIQUE (id_user)

if колона ID_USER вече е първичен ключ, тогава пропуснете първия метод. След като бъде внедрен, вече можете да използвате следния синтаксис

INSERT INTO user_account (id_user, bio) 
VALUES($id, '$bio')
ON DUPLICATE KEY UPDATE bio = '$bio';

Като странична бележка, заявката е уязвима с SQL Injection ако стойността (s ) от променливите идват отвън. Моля, разгледайте статията по-долу, за да научите как да се предпазите от него. Чрез използване на PreparedStatements можете да се отървете от използването на единични кавички около стойностите.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Защо този цикъл не показва актуализиран брой обекти на всеки пет секунди?

  2. Моделиране на бази данни:Как да категоризираме продукти като Amazon?

  3. обединяване на две SELECT заявки

  4. PHP/mysql получава броя на засегнатите редове на израза UPDATE

  5. ГРЕШКА 1833 (HY000):Не може да се промени колоната MySQL