Autor | Zpráva | ||
---|---|---|---|
Prochy Profil |
Zdravim,
chci se zeptat, když chci smazat z tabulky nějakej řádek, a následně mi to zařve, že to je omezeno cizím klíčem, tak jestli se to dá rovnou v tom dotazu nastavit, aby mi to změnilo na jiný id, ty co sou tim omezeni. Dejme tomu, že mám tabulku: Typ platby: Id name 1 Kartou 2 Poukázkou Druhá tabulka platby id idTypPlatby částka 1 2 500 A teď bych chtěl smazat řádek Poukázkou: DELETE * FROM typPlatby WHERE id=2 LIMIT 1
Po tomto mi to zařve, že to nemůže smazat, jelikož to je omezeno cizím klíčem na kterém je nastaveno update. Tak by mě zajímalo jestli jde udělat něco takového: DELETE * FROM typPlatby WHERE id=2 LIMIT 1 ON UPDATE 1 Snad jsem se vyjádřil srozumitelně. Děkuji za odpověď. |
||
DJ Miky Profil |
#2 · Zasláno: 24. 4. 2012, 10:38:05
Chování se dá nastavit přímo při vytváření cizího klíče, tobě by se hodilo asi
ON DELETE SET DEFAULT (při smazání nastavit sloupec na default hodnotu - kdybys ji u idTypPlatby nastavil na 1), ale u toho si nejsem jistý podporou (MySQL manuál píše, že InnoDB tabulky SET DEFAULT neberou).
Zrovna u tohoto konkrétního příkladu mi mazání typů plateb nepřijde jako nejvhodnější řešení - nejde to řešit jinak? |
||
Časová prodleva: 11 let
|
0