Autor | Zpráva | ||
---|---|---|---|
cLickY Profil |
#1 · Zasláno: 10. 12. 2015, 20:19:20
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 |
#2 · Zasláno: 10. 12. 2015, 20:27:49
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 |
#3 · Zasláno: 10. 12. 2015, 20:29:42
Do SQL napisat: DELETE FROM users ??
|
||
juriad Profil |
#4 · Zasláno: 10. 12. 2015, 20:33:58
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 |
#5 · Zasláno: 10. 12. 2015, 20:35:13
juriad:
Ja potrebujem celú databázu premazať aj autoincrement aby začínalo od 1.Vlastne aby znovu vytvorilo prázdnu. |
||
juriad Profil |
#6 · Zasláno: 10. 12. 2015, 20:38:04
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 |
#8 · Zasláno: 10. 12. 2015, 20:51:29
cLickY:
Presne tak. SET foreign_key_checks = 0; TRUNCATE TABLE ...; SET foreign_key_checks = 1; |
||
cLickY Profil |
#9 · Zasláno: 10. 12. 2015, 21:18:19
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 |
#10 · Zasláno: 10. 12. 2015, 22:45:28
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 |
#11 · Zasláno: 11. 12. 2015, 08:37:06
cLickY:
Ve výpisu můžete mít chybu, která se dříve neprojevila. Například chybějící jednoznačné řazení. |
||
Časová prodleva: 8 let
|
0