Autor | Zpráva | ||
---|---|---|---|
Why?! Profil * |
#1 · Zasláno: 21. 3. 2011, 17:01:47
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 * |
#2 · Zasláno: 21. 3. 2011, 17:21:08
Pokud máte na těch sloupcích složený primární klíč, tak bude fungovat první varianta bez problémů.
|
||
Why?! Profil * |
#3 · Zasláno: 21. 3. 2011, 17:47:40
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 |
#4 · Zasláno: 21. 3. 2011, 17:52:52
Primární klíč může být nastaven i nad kombinací více sloupečků, čiliže by přesně vyhovoval tomu, co popisuješ.
|
||
Časová prodleva: 13 let
|
0