Probleme cu FOREIGN_KEY la import baza de date in MySql

Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
cadou
Mesaje: 328

Probleme cu FOREIGN_KEY la import baza de date in MySql

Nu stiu de ce as avea impresia ca baza mea de date nu sa incarcat complet.
Baza de date este undeva la 54 MB arhivata si 660 MB nearhivata.
Dupa 40 de minute de cand incepe incarcarea, primesc mesajul de eroare:

Cod: Selectaţi tot

Error in processing request
Cod eroare: 500
Text eroare: Internal Error
Si inca continua ca pagina sa se incarce pentru alte cateva minute. si atat ... oare sa fie ceva de la host si sa nu ma lase sa incarc asa baza de date mare ?

MarPlo Mesaje: 4343
Daca faci Import la baza de date cu phpMyAdmin, la Import iti arata si marimea maxima permisa pt. fisierul transmis; de exemplu: (Max: 150MiB).
Daca e mai mare de 55 MB, nu asta e problema. Totusi, fiind asa mare nearhivata, problema poate fi daca depaseste memoria alocat de hosting pt. acel site.

- Solutia ar fi sa faci Import la acea baza de date pe localhost (pe calculatorul tau, cu phpmyadmin), faci Export la fiecare tabel separat, apoi pe hosting Import la fiecare tabel.

cadou Mesaje: 328
Pana la urma problema este de la baza de date cea mare, am luat legatura cu cei de la gazduire, au avut bunavointa ca ei sa imi importe baza de date si ei au avut probleme, raspunsul lor fiind:

Buna ziua,
Am incercat importarea bazei de date dar aceasta returneaza urmatoarea eroare :

Cod: Selectaţi tot

ERROR 1452 (23000) at line 4689520: Cannot add or update a child row: a foreign key constraint fails 
(`cobaditl_bree`.`#sql-b47e7_b9b64`, CONSTRAINT `fk_users_to_alert_alert1` FOREIGN KEY (`alert_id`) REFERENCES `alert` (`alert_id`)
 ON DELETE CASCADE ON UPDATE NO ACTION)
Va trebui sa remediati aceasta situatie pentru a va putea ajuta cu importarea bazei de date.
In urma acestei erori primeati si mesajul de eroare din interfata phpMyAdmin.
Daca aveti intrebari nu ezitati sa ne contactati.


Daca fac import pe localhost, pot sa am aceeasi eroare ? Cum as putea remedia problema asta ?
Voi incerca cat de curand (cand am timp) sa fac acest import de sql in localhost .... parca cu apache se face ...

cata1241 Mesaje: 45
Baza de date nu a fost construita bine.Intre acele tabele, exista anumite relatii, de aia MySQL se numeste baza de date relationala, ei bine, in cazul tau exista o relatie de genul: in tabelul X ( fk_users_to_alert_alert1) se pot adauga date ce au ID-uri care se gasesc in tabelul Y ( alert ), o astfel de relatie asigura integritatea datelor ( acea FOREIGN_KEY )

A trecut ceva timp de cand nu am mai lucrat cu asa ceva, sper ca am raspuns bine.In ceea ce priveste solutia, trebuie sa ma gandesc.

MarPlo Mesaje: 4343
Din ce am citit pe internet la astfel de eroare mysql, in tabelul child (la tine 'fk_users_to_alert_alert1') din tabelele relationate sunt randuri care nu se gasesc in celalalt tabel (la tine 'alert'), sau nu au acelasi ID, sau e valoarea NULL in unul, iar celalalt tabel nu permite valoarea Null la acea coloana.

1. O solutie ar fi sa identifici si sa stergi randurile din tabelul child care nu se gasesc in celalalt tabel. Pare complicata la o baza de date asa mare, daca sunt mai multe astfel de inregistrari.

2. O alta solutie e sa anulezi 'foreign key' inainte de adaugarea datelor; adaugand la inceputul fisierului sql acest cod:

Cod: Selectaţi tot

SET FOREIGN_KEY_CHECKS=0;
- apoi il reactivezi cu (adaugat la sfarsitul acelui fisier):

Cod: Selectaţi tot

SET FOREIGN_KEY_CHECKS=1;
- De asemenea, sa te asiguri ca ambele tabele sunt de tip InnoDB. Daca vreunul din cele relationate e MyISAM va returna acea eroare.

- Vezi si ce gasesti pe internet la cautare:
ERROR 1452 Cannot add or update a child row: a foreign key constraint fails

cadou Mesaje: 328
Pana la urma cu ceea ce mi-au incarcat cei de la host, vad ca nu mai am probleme cu afisarea datelor din baza de date, acum am problema ca nu imi creaza sesiune .... trebuie sa ma mai uit sa vad cum creaza acest script sesiunea de utilizator ...

Subiecte similare