Truncate zmazanie tabulky

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
x5
Člen | 28
+
0
-

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?

x5
Člen | 28
+
0
-

Podla tohoto link: „http://stackoverflow.com/questions/5452760/truncate-foreign-key-constrained-table“ co mu tam poslali tie rieisenia, ako dam Remove constraints nikde to nemozem najst na googli.

x5
Člen | 28
+
0
-

Netreba premazat este ine tabulky v databazi, sice pise ze bans tie som premazal no nic.Skuste mi to tu popisat/vysvetlit „lajcky“ prosim vas.

Pavel Kravčík
Člen | 1196
+
+1
-

Tohle úplně nesouvisí s Nette, takže bych zkusil možná jiné fórum, kde to bude lépe popsané. Dělá se to přes adminer `nebo `phpmyadmin, když se vytváří struktura DB. Tam stačí prohledat nastavení struktury tabulky.

esorimer
Člen | 114
+
0
-

Truncate table je v MySQL nešťastně implementováno jako smazání a znovuvytvoření tabulky. A smazat tabulku user, na kterou existují reference z jiné tabulky (bans), nejde, takže nejde ani truncate table.

greeny
Člen | 405
+
0
-

pokud ti nejde o rychlost, je lepší použít DELETE * FROM user. Ten ti spadne pokud máš relace, které nemají CASCADE, ale RESTRICT

x5
Člen | 28
+
0
-

Esorimer: ja 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 skusal som vsetko budem strasne rad ak mi poradite.

David Matějka
Moderator | 6445
+
0
-

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 to vsechno vypada na chyby v tve aplikaci. treba to spatne poradi, mas u dotazu ORDER BY?

x5
Člen | 28
+
0
-

Ale pokial uzivatelov nezmazem v db vsetko ide ako ma.Len po premazany users to nejde.

David Matějka
Moderator | 6445
+
0
-

Pokud tam nemas order by, tak v mysql neni garantovani poradi, v jakem budou data vraceny.

x5
Člen | 28
+
0
-

Kde mam to order by pozriet?resp. V ktorej aplikacii presnejsie?

x5
Člen | 28
+
0
-

A toto nepomože?Predtým než mám niečo pokaziť sa spýtam: Kebyze v nastaveniach klucov zmazem referenciu na inu tabulku pri ktorej mi pise danu chybu?

Mysteria
Člen | 797
+
0
-

Tak samozřejmě, že to pomůže, pak to půjde smazat. Ale může se ti pak stát, že ti data z jedné tabulky budou odkazovat na data do druhé tabulky, který tam ale nebudou (protože přesně k tomuhle jsou cizí klíče navržené, aby zajistili, že nelze odkazovat na neexistující data). Takže bych to nedoporučoval dělat.

Nicméně celé tohle téma se mi zdá divné. Ty jsi autorem té aplikace? Nebo ti to někdo napsal a teď se to snažíš upravit? Protože z téhle diskuze jsem nabyl dojmu, že se v tom nějak extra neorientuješ (neber to zle).

Editoval Mysteria (10. 12. 2015 0:16)

x5
Člen | 28
+
0
-

Mysteria napsal(a):

Tak samozřejmě, že to pomůže, pak to půjde smazat. Ale může se ti pak stát, že ti data z jedné tabulky budou odkazovat na data do druhé tabulky, který tam ale nebudou (protože přesně k tomuhle jsou cizí klíče navržené, aby zajistili, že nelze odkazovat na neexistující data). Takže bych to nedoporučoval dělat.

Nicméně celé tohle téma se mi zdá divné. Ty jsi autorem té aplikace? Nebo ti to někdo napsal a teď se to snažíš upravit? Protože z téhle diskuze jsem nabyl dojmu, že se v tom nějak extra neorientuješ (neber to zle).

Aha a ake mam vychodisko, resp. ako to opravit?Nie niesom autorom aplikacie ani webu.Web som prednedavnom kupil web programoval iCrow. Takze co mi ostava resp. ako to opravit?

x5
Člen | 28
+
0
-

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

Mysteria
Člen | 797
+
+2
-

Prostě ti někde v kódu chybí u SELECTu, který vybírá ty data chybí ORDER BY. Ale vzhledem k tomu, že nikdo tvojí aplikaci nezná, tak ti těžko někdo řekne kde. Takže máš asi dvě možnosti, buď to reklamuj u toho, o nějž si to koupil nebo si sežeň někoho, kdo se ti na to podívá.