Autor Zpráva
Why?!
Profil *
Ahoj, řeším problém, kdy potřebuji insertovat data do tabulky, ale v případě, že už tam taková jednou jsou, tak potřebuji jen updatnout zbylé sloupce. Normálně by to šlo, kdybych to rovnou vkládal i s klíčem, potom bych dal:

INSERT INTO tab1 (id, column1, column2, column3,...)
VALUES ($id, value1, value2, value3,...) ON DUPLICATE KEY UPDATE column3=3;


Ale co když to potřebuju ne podle klíče ale např nějakých dvou sloupců, které každý zvlášť není unikátní, ale dohromady oba tvoří unikátní řádek? Napadlo mě něco jako:

INSERT INTO tab1 (id, column1, column2, column3,...)
VALUES ($id, value1, value2, value3,...) ON DUPLICATE (column1, column2) UPDATE column3=3;


Ale tohle nefunguje :(
Dík za všechny rady :)
Kajman_
Profil *
Pokud máte na těch sloupcích složený primární klíč, tak bude fungovat první varianta bez problémů.
Why?!
Profil *
No, a primární klíč může bejt nastavenej na neunikátních položkách? Jde o to, že hodnoty např v column1 jsou v tabulce několikrát, ale spojení column1 a column2 je vždy unikátní...
YoSarin
Profil
Primární klíč může být nastaven i nad kombinací více sloupečků, čiliže by přesně vyhovoval tomu, co popisuješ.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: