• 14 odgovora
  • 3.970 pregleda
Greska #1005 - Can't create table 18.12.2012. u 16:30 · pre 168 meseci #1
Pozdrav...
Trebala bi mi pomoc oko kreiranja baze...
Kreirao sam neke tabele(naravno one koje nemaju foreign key)
Ali kad je dosao red na te table, odbija se njeno kreiranje sa greskom #1005 - Can't create table
Radim u testnom (wamp) serveru...Evo koje dvije tabele zelim da povezem...

create table nivo_kvalifkacije (
id_nivoa smallint not null,
naziv varchar(200) not null,
stepen varchar(10) not null,
primary key(id_nivoa)
);


create table smer (
id_smera integer not null,
oznaka varchar(10) not null,
bodovi smallint not null default 180,
constraint chk_bodovi check(
bodovi between 30 and 500 ),
id_nivoa smallint not null,
primary key (id_smera) ,
foreign key (id_nivoa)
references nivo_kvalifkacije,
constraint uk_sifra unique(oznaka)
);
Prva se kreira,ali druga nece...Molio bi ako neko zna o cemu je rijec da me uputi...
Re: Greska #1005 - Can't create table 18.12.2012. u 18:49 · pre 168 meseci #2
jesil` probao bez ovog dela
Code:
constraint chk_bodovi check(
bodovi between 30 and 500 ),


Nisam bas siguran da MySql podrzava check constraint.
Potpis
/*A sad odo` malo napolje*/
Re: Greska #1005 - Can't create table 18.12.2012. u 18:52 · pre 168 meseci #3
Jesam...Ista greska se javlja...
Problem je sa ovim foreign key...ali nikako da te dvije tabele spojim...
Kad obrisem ovo foreign key moze...
Re: Greska #1005 - Can't create table 18.12.2012. u 19:00 · pre 168 meseci #4
Code (sql):


 CREATE TABLE smer (
 id_smera INTEGER NOT NULL,
 oznaka VARCHAR(10) NOT NULL,
 bodovi SMALLINT NOT NULL DEFAULT 180,
 CONSTRAINT chk_bodovi CHECK(
 bodovi BETWEEN 30 AND 500 ),
 id_nivoa SMALLINT NOT NULL,
 PRIMARY KEY (id_smera),
 FOREIGN KEY FK_ID_NIVOA(id_nivoa) REFERENCES nivo_kvalifkacije(id_nivoa),
 CONSTRAINT uk_sifra UNIQUE(oznaka)
 );
 
Re: Greska #1005 - Can't create table 18.12.2012. u 19:15 · pre 168 meseci #5
I tu nece...ista greska...
Ne znam sta da radim...
Pokusao sam i definsaati INDEX na to id_nivoa...ali i to nema efekta...
Re: Greska #1005 - Can't create table 18.12.2012. u 19:55 · pre 168 meseci #8
Mozda ti je do redosleda kako kreiras tabele. Dakle... Prazna baza, pa kreiras tabelu 'nivo_kvalifkacije' (primeti da si napravio typo), pa onda tabelu 'smer'.


Kopiraj ovaj kod u Workbench i Ctrl+F5 na jednu pa na drugu tabelu(tj. na text koji kreira odgovarajucu tabelu):

CREATE TABLE nivo_kvalifkacije (
id_nivoa SMALLINT NOT NULL,
naziv VARCHAR(200) NOT NULL,
stepen VARCHAR(10) NOT NULL,
PRIMARY KEY(id_nivoa)
);

CREATE TABLE smer (
id_smera INTEGER NOT NULL,
oznaka VARCHAR(10) NOT NULL,
bodovi SMALLINT NOT NULL DEFAULT 180,
id_nivoa SMALLINT NOT NULL,
PRIMARY KEY (id_smera),
FOREIGN KEY FK_ID_NIVOA(id_nivoa) REFERENCES nivo_kvalifkacije(id_nivoa),
CONSTRAINT uk_sifra UNIQUE(oznaka),
CONSTRAINT chk_bodovi CHECK(bodovi BETWEEN 30 AND 500 )
);
Re: Greska #1005 - Can't create table 18.12.2012. u 20:04 · pre 168 meseci #9
Da da...tako sam i napravio...prvo tabelu nivo_kvalifkacije...
Pa onda ovu tabelu smer...
Ali uvijek je greska ista...
Kao da ne prepoznaje ovo foreign key...
Re: Greska #1005 - Can't create table 18.12.2012. u 20:18 · pre 168 meseci #10
Probaj jos ovo:


CREATE TABLE smer (
id_smera INTEGER NOT NULL,
oznaka VARCHAR(10) NOT NULL,
bodovi SMALLINT NOT NULL DEFAULT 180,
id_nivoa_2 SMALLINT NOT NULL,
PRIMARY KEY (id_smera),
FOREIGN KEY FK_ID_NIVOA(id_nivoa_2) REFERENCES nivo_kvalifkacije(id_nivoa),
CONSTRAINT uk_sifra UNIQUE(oznaka),
CONSTRAINT chk_bodovi CHECK(bodovi BETWEEN 30 AND 500 )
);


isti princip, prazna baza, redosled kreiranja pa javi.
Re: Greska #1005 - Can't create table 19.12.2012. u 07:33 · pre 168 meseci #12
Ne znam ko ti generise ovaj SQL, ali upit za kreiranje druge tabele nije dobar, treba biti

Code:

create table smer (
id_smera integer not null,
oznaka varchar(10) not null,
bodovi smallint not null default 180,
constraint chk_bodovi check(
bodovi between 30 and 500 ),
id_nivoa smallint not null,
primary key (id_smera) ,
foreign key (id_nivoa)
references nivo_kvalifkacije (id_nivoa),
constraint uk_sifra unique(oznaka)
);


Dakle, u stranom kljucu moras specifikovati ime tabele i ime kolone na koju se ogranicenje odnosi. Takodje, tabela mora biti u innodb formatu.

edit: Sad vidim da je ovaj pogresan kod samo u prvom postu, a kasnije je ispravljen. Ako i dalje imas problema, probaj izbaciti foreign key iz druge tabele, pa ga naknadno dodaj sa UPDATE TABLE .. sintaksom?
Re: Greska #1005 - Can't create table 19.12.2012. u 08:59 · pre 168 meseci #13
Pokusao sam sad i tako...
Ali evo greske...#1005 - Can't create table 'mojabaza.#sql-10ec_1d2' (errno: 150).
Kreira se bez foreign key-a, ali kad g apokusam ubaciti(kao sto si mi i rekao) javi se ova greska...tj.odbija se dodavanje tog kljuca...
Mislis ovako:
ALTER TABLE smer
ADD FOREIGN KEY (id_nivoa)
REFERENCES nivo_kvalifkacije(id_nivoa)
Re: Greska #1005 - Can't create table 20.12.2012. u 17:59 · pre 168 meseci #14
mora da su ti ostali neki indexi od prethodnih pokusaja... obrisi cijelu bazu pa pokusaj ponovo, ja sam pokusao i ovo radi:
Code:


CREATE TABLE nivo_kvalifkacije (
id_nivoa SMALLINT NOT NULL,
naziv VARCHAR(200) NOT NULL,
stepen VARCHAR(10) NOT NULL,
PRIMARY KEY(id_nivoa)
);

CREATE TABLE smer (
id_smera INTEGER NOT NULL,
oznaka VARCHAR(10) NOT NULL,
bodovi SMALLINT NOT NULL DEFAULT 180, 
id_nivoa SMALLINT NOT NULL,
PRIMARY KEY (id_smera),
FOREIGN KEY FK_ID_NIVOA(id_nivoa) REFERENCES nivo_kvalifkacije(id_nivoa),
CONSTRAINT uk_sifra UNIQUE(oznaka),
CONSTRAINT chk_bodovi CHECK(bodovi BETWEEN 30 AND 500 )
);
Re: Greska #1005 - Can't create table 20.12.2012. u 18:50 · pre 168 meseci #15
Bravo...
pravio sam indekse i tako spajao,
ali nisam kontao da mi je to problem...
Evo...tabela smer mi je unijeta...
Imam jos 7 tabela unijeti...
Ako bude problema...
Nadam se da ces mi opet pomoci...
Samo pitanje jos jedno...
Kako unijeti(importovati) u bazu podatke(jer mi ima 12 tabela )
Imam podatke preko nekih .ixf fajlova(mislim da je ova baza prvobitno planirana za
DB2)...Ali sumnjam da se oni mogu
unijeti preko MYsql-a...Da li slucajno postoji nacin da ih unesem u MYSql???alirati st
Skinuo sam i DB2...ali nekakav problem imam sa prikazom,jt. kad otvorim ovaj program nemam prikaz kako da pravim bazu...Uopste mi se nikakav
prozor za kreiranje ne pojavljuje...
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme