Autor | Zpráva | ||
---|---|---|---|
SwimX Profil |
#1 · Zasláno: 5. 1. 2010, 15:19:12
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 |
#2 · Zasláno: 5. 1. 2010, 15:27:04
|
||
SwimX Profil |
#3 · Zasláno: 5. 1. 2010, 15:35:43
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 * |
#4 · Zasláno: 5. 1. 2010, 16:32:26
V mysql lze na podobné věci použít spojení v delete.
|
||
SwimX Profil |
#5 · Zasláno: 5. 1. 2010, 19:25:12
Kajman:
moh bys mi to trochu osvítit? asi jsem nechápavý.. |
||
Kajman_ Profil * |
#6 · Zasláno: 5. 1. 2010, 22:15:53
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& |
||
Časová prodleva: 13 let
|
0