SELECT count(*), app_label, id, name FROM django_content_type GROUP BY app_label
Co budu mít v id a name? To co si MySQL nějak zvolí a ani nijak neupozorní. Třeba Firebird mě s tím zcela právem vyhodí a takový dotaz skončí chybou.
Nebo před koncem roku jsem dělal na importu dat ze starší php aplikace do nové djangové aplikace. Idea udělat si převod u sebe na lokále s posunutými id (ať je mezi ostrou db a importovanými daty mezera) a to pak poslat do ostré db končila na tom, že ALTER TABLE tbl AUTO_INCREMENT = 1000 u třiceti tabulek fungovalo v pohodě, ale u tří tabulek si MySQL vesele pokračovalo v id od původní hodnoty. Nakonec jsem to obešel tím, že jsem do postižené tabulky vložil záznam s id 999, naimportoval data a pak ten záznam zase smazal. Není nad to se drbat levou rukou za pravým uchem.
To že MyISAM nemá referenční integritu (a vlastně skoro nic) je známo, ale když tedy nad MyISAM tabulkou dělám cizí klíč, proč mě opět alespoň nedá varování, že to nepodporuje? Jinak i když mám veškerou logiku v aplikaci, tak alespoň tu referenční integritu by si slušná databáze měla umět ohlídat, protože když do db sáhnu přímo přes konzoli, tak si třeba i nechtěně mohu rozbít vazby.
Plus mě štvalo pár další chyb nebo nelogičností se kterými jsem se u MySQL setkal, teď si bohužel přesně nevzpomenu.