Autor Zpráva
cLickY
Profil
Ahojte, potrebujem poradit so zmazanim tabulky v DB:
Ak si v databaze dam users a tam truncate vyhodi mi tuto chybu:

#1701 – Cannot truncate a table referenced in a foreign key constraint (d87699_liga.bans, CONSTRAINT bans_ibfk_1 FOREIGN KEY (user) REFERENCES d87699_liga.users (id))

Ale pritom bans tabulku som vyprazdnil tiez.

Kde moze byt chyba presnejsie?
juriad
Profil
dev.mysql.com/doc/refman/5.7/en/truncate-table.html
„Truncate operations drop and re-create the table, which is much faster than deleting rows one by one, particularly for large tables.“

Použij příkaz DELETE FROM users, bez WHERE klauzule.
cLickY
Profil
Do SQL napisat: DELETE FROM users ??
juriad
Profil
Ano. Chceš smazat záznamy, nebo tabulky znovuvytvořit prázdnou?
Zamysli se jak, se to má chovat vůči AUTO INCREMENTu. Delete hodnotu AI zachová (staré záznamy už neexistují, ale jejich id může), truncate resetuje (protože se prakticky vytvoří nová tabulka).
cLickY
Profil
juriad:
Ja potrebujem celú databázu premazať aj autoincrement aby začínalo od 1.Vlastne aby znovu vytvorilo prázdnu.
juriad
Profil
Tak v tom případě zakaž constrainy a proveď truncaty všech tabulek a pak constrainy znovu povol.
SET foreign_key_checks = 0; # pak zase = 1;

Přesně toto dělá napřiklad mysql_dump. A proto se ti pak povede naimportovat data, přestože se jde tabulka po tabulce a jsou mezi nimi i cyklické závisloti.
cLickY
Profil
juriad:
Toto som skúšal len mi to nejako nejde resp nemožem nato prísť, do SQL zapisem SET foreign_key_checks = 0; a potom truncate na vsetky tabulky a potom naspet do SQL zapisem SET foreign_key_checks = 1; ???


Tak urobil som to, ak som to urobil podla toho ako si napísal tak ak chcem tich uzivatelov mazat po jednom z tabulky tak mi to ide zmazat pekne vsetkych lenze ak potom registrujem odznovu novych tak mi budto nejde upravovat profil alebo po kliknuty na online uzivatelov na nejaky profil ukaze link profil bez ID.Alebo mi ukazuje v zlom poradi spravy na webe.Ale ak to mam takto nastavene default databaza ktora bola od zaciatku s cca 600 uzivatelmi tak vsetko ide a chova sa to okey, uz fakt nechapem ako to vyriesit?
xROAL
Profil
cLickY:
Presne tak.
SET foreign_key_checks = 0;
TRUNCATE TABLE ...;
SET foreign_key_checks = 1;
cLickY
Profil
Tak urobil som to, ak som to urobil podla toho ako si napísal tak ak chcem tich uzivatelov mazat po jednom z tabulky tak mi to ide zmazat pekne vsetkych lenze ak potom registrujem odznovu novych tak mi budto nejde upravovat profil alebo po kliknuty na online uzivatelov na nejaky profil ukaze link profil bez ID.Alebo mi ukazuje v zlom poradi spravy na webe.Ale ak to mam takto nastavene default databaza ktora bola od zaciatku s cca 600 uzivatelmi tak vsetko ide a chova sa to okey, uz fakt nechapem ako to vyriesit?
cLickY
Profil
Tak nakoniec som to premazal týmto postupom, ale po registrovaný 2nových užívatelov mi začali blbnúť správy ukazuje ich v zlom postupe.Dovtedy keď boli všetci užívatelia v DB pred premazaním bolo všetko ok.Kde može byť chyba
Kajman
Profil
cLickY:

Ve výpisu můžete mít chybu, která se dříve neprojevila. Například chybějící jednoznačné řazení.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0