sql >> Database teknologi >  >> RDS >> Mysql

mysql opretter en ny række i stedet for at opdatere eksisterende

Du kan direkte UPDATE hvis værdien allerede eksisterer eller INSERT hvis den ikke eksisterer ved at bruge INSERT...ON DUPLICATE KEY UPDATE

Men først skal du angive en unik kolonne,

ALTER TABLE user_account ADD CONSTRAINT tb_uq UNIQUE (id_user)

hvis kolonne ID_USER er allerede en primær nøgle, så spring den første metode over. Efter det er blevet implementeret, kan du nu bruge følgende syntaks

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

Som en sidenote er forespørgslen sårbar med SQL Injection hvis værdien (s ) af variablerne kom udefra. Tag et kig på artiklen nedenfor for at lære, hvordan du forhindrer det. Ved at bruge PreparedStatements du kan slippe for at bruge enkelte anførselstegn omkring værdier.




  1. Hvordan bruger jeg PHP korrekt til at kode MySQL-objekt til JSON?

  2. Livsforsikringsdatamodel

  3. SQL:Hvordan finder man dubletter baseret på to felter?

  4. Højere kardinalitetskolonne først i et indeks, når det involverer et interval?