Autor | Zpráva | ||
---|---|---|---|
bestik_63 Profil |
#1 · Zasláno: 16. 11. 2014, 12:21:31
ahoj mám dotaz,
jak zálohovat databázi, která má v tabulkách omezení např. cizí klíč? Pokud si totiž exportuju (v mysql_admin) tabulky i data pomocí sql příkazů, tak se mi jednotlivé tabulky vypíšou podle abecedy. Bohužel se ale stane, že tabulka v abecedním seznamu je závislá na tabulce položené v seznamu níže. Pak při obnově při zápisu do tabulky nastane chyba, protože daná tabulka bude závislá na datech z tabulky, která ještě nebude obsahovat data (ERROR 1452: Cannot add or update a child row: a foreign key constraint fails). Zálohu bych chtěl provádět, pomocí php skriptu, takže bych si pořadí zálohování a posléze obnovy mohl řídit sám. Zajímalo by mě, jestli by se dal udělat skript pro jakoukoliv databázi (u které nevím kolik a jaké má tabulky (data). Seznam tabulek, pohledů a podobně jde v SQL jednoduše zjistit. Pak si zazálohuju data, problém je v tom, ale jak zapisovat data při obnově, protože kvůli cizím klíčům je třeba dodržet pořadí zápisu tabulek. |
||
Alphard Profil |
#2 · Zasláno: 16. 11. 2014, 12:35:45
Snad každý rozumný admin nastavuje
SET foreign_key_checks = 0 , nevím, jaký nástroj používáte, že tohle neumí.
|
||
juriad Profil |
#3 · Zasláno: 16. 11. 2014, 12:39:15
phpMyAdmin to nějak řeší; co je mysql_admin?
Tabulky vytvářej bez referenčních omezení, importuj data bez kontrol a následně pomocí ALTER TABLE ty constraints znovu přidej. Relevantní: http://stackoverflow.com/questions/17890461/foreign-key-constraints-missing-after-phpmyadmin-export Nebo lze foreign constraints dočasně zakázat: http://stackoverflow.com/questions/11468783/export-and-import-data-from-phpmyadmin Mysqldump to také řeší tímto způsobem: http://stackoverflow.com/questions/2429655/can-you-automatically-create-a-mysqldump-file-that-doesnt-enforce-foreign-key-c |
||
bestik_63 Profil |
#4 · Zasláno: 16. 11. 2014, 15:00:47
Děkuju moc za rady.
SET foreign_key_checks = 0 řeší přesně můj problém. Holt se člověk pořád učí :-) mysql_admin je http://www.phpmyadmin.net/home_page/index.php, jen jsem to blbě napsal :-) |
||
Časová prodleva: 9 let
|
0