Ahoj,
vzdy jsem to resil tak, ze cilova DB byla nova (prazdna), takze jsem si nejdriv vytvoril tabulky s indexama (nebo bez -
podle toho co bylo vzhledem k datum vyhodnejsi), do te jsem natahl data a pak vytvoril foreign keys ..
Na druhou stranu, pokud cilova db muze byt offline, asi neni problem si vypsat vsechny foreign key zminenych tabulek (od
nich a na ne), ty si zapamatovat, dropnout, nahrat data a znova vytvorit. Bude to nejjednodussi a bez problemu.
S pozdravem
Ing. Jan Novotný napsal(a):
Zdravím,
pokud se jedná jen o MySQL mohu paradit specifické řešení (ovšem
možná i další databáze mají obdobné paralely). Je možné na začátku
importního skriptu nastavit:
SET FOREIGN_KEY_CHECKS=0;
a na konci
SET FOREIGN_KEY_CHECKS=1;
něco málo se dočtete na blogu:
http://blog.spikesource.com/mysql_hotbackup.htm
v dokumentaci MySQL potom:
http://dev.mysql.com/doc/refman/5.0/en/innodb-foreign-key-constraints.html
Pak si nemusíte lámat hlavu s pořadím insertů.
Honza N.
2008/6/23 Radovana Straube <[EMAIL PROTECTED]>:
Dobry den,
potrebujem skopirovat data z jednej schemy v databaze do druhej identickej
schemy (neskor aj pre rozne typy databaz). Ked si vylistujem zoznam tabuliek v
scheme (pomocou getTables(..)), dostanem zoznam tabuliek v abecednom poradi
(momentalne vyvijam na MySQL 5.0.1). V tomto zozname nie su zohladnene relacie
medzi tabulkami, takze potom sposob prekopirovania dat SELECT - INSERT
samozrejme nefunguje.
Mohol by ma prosim niekto nakopnut akym smerom sa mam vydat pri rieseni tohto
problemu? Odchytavat vynimky a podla toho rotovat tabulky sa mi nezda ako velmi
stastne riesenie.
Dakujem
Radovana Straube
--
Jiří Mareš (mailto:[EMAIL PROTECTED])
ČSAD SVT Praha, s.r.o. (http://www.svt.cz)
Czech Republic