| Autor | Zpráva | ||
|---|---|---|---|
| qteck Profil |
#1 · Zasláno: 20. 2. 2015, 14:28:50 · Upravil/a: qteck
Ahoj,
moje tabulka vypadá takto: id int(11) NO PRI NULL auto_increment title varchar(255) NO NULL content text NO NULL author varchar(255) NO NULL place varchar(255) NO NULL added datetime NO NULL unique_key int(11) NO UNI NULL a sql dotaz takto: INSERT INTO articles
(title, content, author, place, added, unique_key)
VALUES
('ahoj', 'i am duplicate', 'moje jmeno', 'místo', NOW(), 85)
ON DUPLICATE KEY UPDATE unique_key = 85a snažím se změnit záznam s unikátním klíčem 85. dotaz proběhne úspěšně, ale adminer říká 0 ovlivněných řádků. pokud změním unikátní index a tedy místo 85 neexistující unikátní číslo řádek se vloží. každopádně já ho potřebuju updatenout, jak na to? Díky. INSERT INTO articles
(title, content, author, place, added, unique_key)
VALUES
('ahoj', 'i am duplicate', 'moje jmeno', 'místo', NOW(), '10')
ON DUPLICATE KEY UPDATE title ='ahoj', content='content', author='boob'okay, jsem hňup. Díky |
||
| fibi Profil * |
#2 · Zasláno: 20. 2. 2015, 14:37:40
Takhle na první pohled bych řekl že za to ON DUPLICATE KEY UPDATE musíš dát jakoby UPDATE příkaz.
Tedy nějak takto : INSERT INTO articles
(title, content, author, place, added, unique_key)
VALUES
('ahoj', 'i am duplicate', 'moje jmeno', 'místo', NOW(), 85)
ON DUPLICATE KEY UPDATE title = 'ahoj', content = 'i am duplicate', author = 'moje jmeno', place = 'misto', added = NOW()Ale třeba mně někdo upřesní, nebo opraví. |
||
| Kajman Profil |
#3 · Zasláno: 20. 2. 2015, 15:22:59
Jen poznámka, že se příslušné hodnoty v update nemusí vypisovat znovu, pokud se nemají lišit od případného insertu. Je možné použít funkci values. Tedy něco jako
... ON DUPLICATE KEY UPDATE title =values(title), author=values(author) |
||
|
Časová prodleva: 11 let
|
|||
0