Autor Zpráva
SwimX
Profil
Na dotaz typu:
DELETE FROM zakaznici WHERE id_zakaznik = (SELECT id_zakaznik FROM zakaznici WHERE jmeno = "Ondrej")


vypadne tento error. Vím, že tento dotaz je nesmyslný, na druhou strnau, proč se nejdřív neprovede subquery, vrátí ID a pak delete? Bylo by to tak logické a na jiných databázích než MySQL to zřejmě funguje.

Děkuji za vysvětlení


Pokud se vám, nelíbí název tématu, navrhněte lepší, nic mě nenapadlo :)
Nox
Profil
možná?
http://bugs.mysql.com/bug.php?id=3327
SwimX
Profil
Nox: díky
ale
"Because of above that query can be executed when half of table already deleted which is wrong."
Znamená to tedy, že se neprovede nejřív subquery a pak delete? Vždyť je podle mě nesmysl zavolat poddotaz někdy v půlce mazání. Jak to tedy MySQL databáze řeší?
Kajman_
Profil *
V mysql lze na podobné věci použít spojení v delete.
SwimX
Profil
Kajman:
moh bys mi to trochu osvítit? asi jsem nechápavý..
Kajman_
Profil *
Snad všechny konstrukce s poddotazy lze přepsat na join. MySQL umožňuje syntaxy delete i update s využitím joinů.

Nedávno se něco málo o tom psalo na
http://www.root.cz/clanky/co-nefunguje-v-mysql-jak-to-obejit/nazory/?o[330091]=on&o[330092]=on&o[330099]=on&o[330102]=on&o[330314]=on&show=Zobrazit+vybran%C3%A9&;

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: