Autor | Zpráva | ||
---|---|---|---|
emissary Profil |
Zdravím,
viete mi povedať v čom je problém? Vyhadzuje mi chybu #1005 - Can't create table '.\school\studentcourse.frm' (errno: 150) niečo s kľúčmi a previazaním tabuliek. Foreign Key Problem. Jedná sa konkrétne o tabulku "studentcourse". CREATE TABLE student ( studentid SERIAL NOT NULL PRIMARY KEY, name varchar(255) ); CREATE TABLE course ( courseid SERIAL NOT NULL PRIMARY KEY, coursecode varchar(10), name varchar(255) ); CREATE TABLE studentcourse ( studentid integer, courseid integer, CONSTRAINT fk_studentcourse_studentid FOREIGN KEY (studentid) REFERENCES student(studentid), CONSTRAINT fk_studentcourse_courseid FOREIGN KEY (courseid) REFERENCES course(courseid) ); CREATE UNIQUE INDEX idx_studentcourse_unique ON studentcourse(studentid, courseid); |
||
_es Profil |
#2 · Zasláno: 14. 4. 2014, 12:11:10
emissary:
Polia studentid a courseid musia mať pri vytvorení tabuľky definované indexy.
|
||
juriad Profil |
#3 · Zasláno: 14. 4. 2014, 12:22:55
Asi by bylo vhodné zmínit, že se jedná o PostgreSQL.
Indexy by neměly být třeba (alespoň podle dokumentace), byť jsou obecně vhodné. Tady navíc je index implicitně tvořený PRIMARY KEY. Ale samotný problém nevidím. |
||
Kajman Profil |
#4 · Zasláno: 14. 4. 2014, 12:41:40
juriad:
„Asi by bylo vhodné zmínit, že se jedná o PostgreSQL.“ Podle čísla chyby to vypadá spíše na mysql. emissary Je na tom serveru podpora innodb tabulek? Povede se vytvoření, když u všech třech tabulek přímo určíte, že se mají vytvořit v innodb (před středníky přidat TYPE=InnoDB)? Případně můžete zkusit v tabulce studentcourse ty dva sloupce zadat jako bigint místo integer, aby odpovídaly typu z tabulek, na které se odkazují. |
||
_es Profil |
#5 · Zasláno: 14. 4. 2014, 12:44:08
juriad:
Myslel som indexy v tabuľke studentcourse , no keď píšeš, že to nie je treba, tak bude asi chyba inde.
|
||
juriad Profil |
#6 · Zasláno: 14. 4. 2014, 13:02:59
Kajman:
Jo, aha, typ SERIAL jsem neznal. SERIAL is an alias for BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE. Měl jsem pochybnosti; on se mi nezdál ten soubor .frm. |
||
emissary Profil |
Zdravím...
Ste borci... jedná sa o kód k PostgreSQL , ja som v databázach v úplných začiatkoch. Takže mám v tom trocha problém. Je to príklad z jednej knihy. Myslel som si (doteraz mi všetko fungovalo tak), že keď to pustím do MySQL, tak to bude pracovať rovnako. Ale asi som sa riadne mýlil. Takže pre upresnenie. Je to kód pre PostgreSQL a chcel by som to rozbehnúť na MySQL. Ako by som to mal upraviť? Takže ten istý kód som zadal u seba doma na serveri a v pohode prešiel. Bez problémov. Tamto som skúšal na LAMP čo som sa nudil v práci. Niekde som to stiahol na nete. Ani MySQLi to nepodporovalo. Tak problém bol asi tam. |
||
Časová prodleva: 10 let
|
0