sql >> Databáze >  >> RDS >> Mysql

mysql podmíněné vložení - pokud neexistuje, vložte

Použijte REPLACE - funguje přesně jako INSERT, kromě toho, že pokud má starý řádek v tabulce stejnou hodnotu jako nový řádek pro PRIMARY KEY nebo UNIQUE index, starý řádek se před vložením nového řádku smaže.

http://dev.mysql.com/doc/refman/5.0 /cs/replace.html

-- For your example query
REPLACE INTO table_name(name, value, id) VALUES
('phill', 'person', 12345) 

Upravit:Protože nemůžete použít REPLACE, další možností je:nastavit indexy omezení pro data tabulky (primární klíč, jedinečnost) a použít INSERT IGNORE

INSERT IGNORE INTO table_name
SET name = 'phill',
    value = 'person',
    id = 12345;


  1. Bez ohledu na to vrátit výchozí výsledek pro hodnotu IN

  2. Docker – Spusťte Apache na hostiteli a kontejneru pro různé webové stránky

  3. 5 způsobů, jak implementovat vyhledávání bez rozlišení velkých a malých písmen v SQLite s plnou podporou Unicode

  4. Návrh databáze pro aplikace využívající hashtagy