mysql

HackForum

mysql#
cus,
zajímalo by mě jestli se dá ověřit existence objektu v mysql jen pomocí sql dotazu, bez použití procedur.

mam kod
$sql = mysql_query("INSERT INTO zalozky (idr,str,time,idclanku) VALUES ('{$_SESSION["ids"]}','{$_GET["strana"]}','
".ktime(1)."','$id')");

a chtěl bych to vložit jen pokud ten záznam neexistuje a pokud existuje jen ho updatenout.

diky:)

----------
[link]

[link]

Někdy kokot kokotem není, někdy je to prostě jenom pták.
(odpovědět)
qteck | E-mail | Website | ICQ 36425086927.4.2011 20:18
re: mysql#
jednoducha syntaxe INSERT ... ON DUPLICATE KEY UPDATE, viz [link]
(odpovědět)
Emkei | E-mail | Website | PGP27.4.2011 22:08
re: mysql#
a já do toho tahal procedury.. :), díky.

----------
[link]

[link]

Někdy kokot kokotem není, někdy je to prostě jenom pták.
(odpovědět)
qteck | E-mail | Website | ICQ 36425086927.4.2011 22:16
re: mysql#
Očekávám od toho ještě jednu věc, v tom byl právě ten problém. Pokud použiji update, tak se insert nesmí vykonat a naopak. To jsem ovšem zapomněl napsat jak koukám :). Proto ty procedury, protože umožňujou větvit příkaz, ale kvůli tomu kraťoučkýmu kódu se mi to zdá zbytečný, takhle to komplikovat. Nemá někdo jiný nápad?



----------
[link]

[link]

Někdy kokot kokotem není, někdy je to prostě jenom pták.
(odpovědět)
qteck | E-mail | Website | ICQ 36425086927.4.2011 22:37
re: mysql#
asi te moc dobre nechapu. kdyz pouzijes tu zminenou syntaxi, tak se provede bud pouze insert (zaznam neexistuje), nebo pouze update (zaznam existuje), ale nikdy oboji.
(odpovědět)
Emkei | E-mail | Website | PGP28.4.2011 0:05
re: mysql#
nebo nastav unique key

----------
chacha
(odpovědět)
gdi27.4.2011 22:38
re: mysql#
můžeš to trochu posat? co tím přesně myslíš? přiřadit identifikátoru unikátní index?

----------
[link]

[link]

Někdy kokot kokotem není, někdy je to prostě jenom pták.
(odpovědět)
qteck | E-mail | Website | ICQ 36425086927.4.2011 22:56
re: mysql#
jo aha já přehlédl že to chceš updatovat.. tak to sorry.. asi bych volil to co napsal emkei pokud to vyhovuje

----------
chacha
(odpovědět)
gdi27.4.2011 23:36
re: mysql#
ne nevyhovuje právě. ono to sice updatne ale zároveň vloží řádek.

----------
[link]

[link]

Někdy kokot kokotem není, někdy je to prostě jenom pták.
(odpovědět)
qteck | E-mail | Website | ICQ 36425086928.4.2011 12:00
re: mysql#
tak tam mas nekde chybu, treba v primarnim klici. jak ten INSERT presne pouzivas?
(odpovědět)
Emkei | E-mail | Website | PGP28.4.2011 12:15
re: mysql#
"INSERT INTO zalozky
(id,str,time,idclanku)
VALUES ('{$_SESSION["logid"]}','{$_GET["strana"]}'
,'".ktime(1)."','$id')
ON DUPLICATE KEY UPDATE time = 'NOW()'"

v podstatě to dělá jakoby tam duplicate key vubec nebyl.

----------
[link]

[link]

Někdy kokot kokotem není, někdy je to prostě jenom pták.
(odpovědět)
qteck | E-mail | Website | ICQ 36425086928.4.2011 15:05
re: mysql#
tabulka vypadá takhle

CREATE TABLE `zalozky` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user` int(11) NOT NULL,
`str` varchar(20) NOT NULL,
`time` datetime NOT NULL,
`zobrazit` smallint(6) NOT NULL DEFAULT '1',
`idclanku` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=107 DEFAULT CHARSET=utf8;

----------
[link]

[link]

Někdy kokot kokotem není, někdy je to prostě jenom pták.
(odpovědět)
qteck | E-mail | Website | ICQ 36425086928.4.2011 15:21

Zpět
 
 
 

 
BBCode