Autor | Zpráva | ||
---|---|---|---|
Luksa Profil * |
#1 · Zasláno: 28. 11. 2009, 12:49:43
Zdravím, při vytváření tabulky mi naskočí tato chybová hláška #1005 - Can't create table './db/clanek.frm' (errno: 150) Čím to je?
CREATE TABLE tema ( tid INTEGER UNSIGNED PRIMARY KEY AUTO_INCREMENT, tema VARCHAR(100) NOT NULL ) ENGINE=InnoDB; CREATE TABLE clanek ( cid INTEGER UNSIGNED PRIMARY KEY AUTO_INCREMENT, clanek VARCHAR(10000) NOT NULL, id_tematu INTEGER NOT NULL, FOREIGN KEY (id_tematu) REFERENCES tema (tid) ON DELETE CASCADE ) ENGINE=InnoDB; Díky za rady |
||
Aesir Profil |
#2 · Zasláno: 28. 11. 2009, 12:54:49
[#1] Luksa:
Jakou používáte databázi a v jaké verzi? |
||
Luksa Profil * |
#3 · Zasláno: 28. 11. 2009, 12:57:40
Aesir:
MySQL: 5.0.77 |
||
nightfish Profil |
#4 · Zasláno: 28. 11. 2009, 12:59:23
problém je v tom, že tema.tid je UNSIGNED INTEGER, zatímco id_tematu je INTEGER, ale ne UNSIGNED
viz třeba první výsledek z Googlu - http://forums.devarticles.com/mysql-development-50/mysql-foreign-key-problem-errno-150t-7704.html |
||
Aesir Profil |
#5 · Zasláno: 28. 11. 2009, 13:02:09 · Upravil/a: Aesir
[#3] Luksa:
FOREIGN KEY musí být stejného typu jako odkazovaný sloupec, takže přidejte v clanek.id_tematu vlastnosti UNSIGNED a mělo by to být snad ok. edit: tož pozdě...ale ani upozornění na nový příspěvek to nestihlo |
||
Luksa Profil * |
#6 · Zasláno: 28. 11. 2009, 13:03:57
nightfish, Aesir:
Díky |
||
Nox Profil |
#7 · Zasláno: 28. 11. 2009, 13:06:35
Někdy to chybu hlásí (při vytváření foreign keys směřujících na již existující tabulku), i když vlastnosti sloupců jsou opravdu identické....v takovém případě mi pomohlo původní sloupec smazat a vytvořit znovu
|
||
Aesir Profil |
#8 · Zasláno: 28. 11. 2009, 13:15:12
[#7] Nox:
V takovém případě by mohlo pomoci nastavit před tou úpravou FOREIGN_KEY_CHECKS na 0. SET FOREIGN_KEY_CHECKS = 0; |
||
Časová prodleva: 14 let
|
0