Portál AbcLinuxu, 28. května 2024 09:56


Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Vložit další komentář
11.6.2008 13:38 Archman | skóre: 34 | blog: plky
Rozbalit Rozbalit vše Re: mysql: Can't create table
Odpovědět | Sbalit | Link | Blokovat | Admin
Koukám, ře teď řešíme podobnou věc...
Cannot add or update a child row: a foreign key constraint fails (`newdatabase/denicky_zaznamy`, CONSTRAINT 
`denicky_zaznamy_ibfk_2` FOREIGN KEY (`denicky_id`, `user_id`) REFERENCES `denicky` (`denicky_id`, `user_id`) 
ON DELETE NO ACTION ON UPDATE NO ACTION)
:-)
11.6.2008 13:39 Archman | skóre: 34 | blog: plky
Rozbalit Rozbalit vše Re: mysql: Can't create table
Akorát já to teda mám jasnější :-D
11.6.2008 14:44 Miloslav Ponkrác | blog: miloslavponkrac
Rozbalit Rozbalit vše Re: mysql: Can't create table
Odpovědět | Sbalit | Link | Blokovat | Admin
MySQL má tyhle věci jenom nalepené, takže to takhle dopadá.

Ale jinak já na všech databázích (myslím tím datové stroje, tedy ne MySQL) vždy vytvářím tabulky tak, že nejprve vytvořím holou tabulku max. s primárním klíčem, pak k němu vytvořím indexy, pak doménovou integritu, pak případné cizí klíče a nakonec triggery. Je to čisté a člověk přesně ví, kde se to zaseklo.
http://ponkrac.net
11.6.2008 14:51 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
Rozbalit Rozbalit vše Re: mysql: Can't create table
To je samozřejmě správný přístup, ale v tomhle případě se jednalo o script updatující na novou verzi database schema. Tam se to dá taky udělat, ale ...
XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
11.6.2008 15:39 Miloslav Ponkrác | blog: miloslavponkrac
Rozbalit Rozbalit vše Re: mysql: Can't create table
Mým cílem nebylo kritizovat. Mě se samozřejmě taky nelíbí chybová hláška od MySQL, která je tu popisována, ale jsem si vědom toho, že MySQL teď dělá věci, které nikdy nebyly v plánu. MySQL nikdy neměla být víc, než malá souborová databáze bez referenční integrity a transakcí. Ovšem její úspěch jí dovedl k tomu, že na nevhodné architektuře se teď provozuje něco, s čím se nepočítalo - vnitřní architekrtura MySQL je jen kostra s "pluginy" (jednotlivými typy tabulek jako MyISAM, InnoDb, ...), které umí vnitřně vrátit chybu "nepodařilo se vytvořit tabulku", ale víc ne. Protože s referenční integritou architektura zkrátka nepočítala, takže mlhavá error message je inherited from ancient times.
15.7.2008 15:26 J_i_r_k_a
Rozbalit Rozbalit vše Re: mysql: Can't create table
Odpovědět | Sbalit | Link | Blokovat | Admin
Pokud to nekomu pomuze, tak reseni je tady Rychle shrnuto: pokud je cizi klic atribut ktery v odkazovane tabulce neni primarnim klicem, musi byt vytvoren jeho index (v odkazovane tabulce). MySQL vytvari index primarniho klice automaticky, takza na jednoduchych pripadech (kdy je cizi klic zaroven primarnim klicem v odkazovane tabulce) to funguje bez problemu. Kdyz ale mate vic cizich klicu, malokdy je podminka indexu splnena a je treba se o ne postarat rucne.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.