Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

problemi s referencama

[es] :: MySQL :: problemi s referencama

[ Pregleda: 2689 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

refa
Tuzla

Član broj: 60356
Poruke: 59
*.22.52.190.adsl.nextra.cz.



Profil

icon problemi s referencama27.05.2007. u 23:13 - pre 176 meseci
pozdrav ranije sam koristio ORACLE za kreiranje baza, no ovu radim pod mysqlom mislio sam da je sve isto ali sam se prevario ocito
mysql za windows 32 bit
5.0.41

create table drzava(
drzava_id smallint not null,
drzava_ime varchar(50),
constraint pk_kanton primary key (drzava_id)
);
Code:

create table kanton(
kanton_id     smallint     not null,
kanton_ime     varchar(50),
drzava_id     smallint          not null,
constraint    pk_kanton primary key(kanton_id),
constraint    fk_kd foreign key(drzava_id) references drzava(drzava_id)
);



to su dvije tabele uspjesno se kreiraju.
unesem par vrijednosti u tableu drzava
npr
insert into drzava values(1,'srbija');
insert into drzava values(2,'bosna');
insert into drzava values(3,'hrvatska');

uspjesno sve
no kad unosim u tabelu kanton
npr
insert into kanton values (1,'vojvodina',1);

dobijem gresku
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near 'inset
into kanton values(1,'vojvodina',1)' at line 1

ne razumijem, fazon je ako koristim drugo ime u tabeli kanton za drzava_id onda radi
pitanje
jeli u mysql se ne moze koristiti isto ime kolona u razlicitim tabelama, a ako moze u cemu grijesim



Code:

create table drzava(
drzava_id     smallint     not null    primary key, 
drzava_ime     varchar(50)
);

create table kanton(
kanton_id     smallint     not null    primary key,
kanton_ime     varchar(50),
drzava_id     smallint      not null     references drzava(drzava_id)

);


ovakva sintaksa takodje radi i isto se desava kao i gore.
ako imate rjesenje oko ovoga super bi bilo jer glupost je ako imam strane kljuceve po tabelama da moram za svaku tabelu pamtiti drugo ime
ili pucati describe table

refa
 
Odgovor na temu

chachka
Srđan Mijatov
Programer
BUS Computers
Kikinda

Član broj: 53780
Poruke: 576
213.244.228.*

Sajt: www.baze-podataka.net


+4 Profil

icon Re: problemi s referencama28.05.2007. u 10:33 - pre 176 meseci
Ovo si poslao kao poruku o gresci:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near 'inset
into kanton values(1,'vojvodina',1)' at line 1

Umesto inset treba insert
"The best code is no code at all."
- Zidar (ES član)
"Biggest obstacle to learning
SQL is unlearning procedural
programming."
- Joe
Celko
"Minimize code, maximize data."
- A. Neil Pappalardo
 
Odgovor na temu

refa
Tuzla

Član broj: 60356
Poruke: 59
*.22.52.190.adsl.nextra.cz.



Profil

icon Re: problemi s referencama30.05.2007. u 13:53 - pre 176 meseci
Code:

create table drzava(
drzava_id     smallint     not null    primary key, 
drzava_ime     varchar(50)
);

create table kanton(
kanton_id     smallint     not null    primary key,
kanton_ime     varchar(50),
drzava_id     smallint      not null,
foreign key     (drzava_id)     references drzava(drzava_id)

);


create table lokacija(
lokacija_id     integer     primary key,
adresa         varchar(50),
postanski_broj     integer,
grad         varchar(50),
kanton_id     smallint,
foreign key    (kanton_id)     references kanton(kanton_id)
);

create table objekat(
objekat_id     smallint primary key,
objekat_ime     varchar(50),
lokacija_id    integer,
manager_id     smallint,
foreign key    (lokacija_id) references lokacija(lokacija_id)
);

create table posao(
posao_id     integer     primary key, 
posao_vrsta    varchar(30)     not null,
min_plata    float,
max_plata    float
);

create table radnici(
radnik_id     integer     not null     primary key,
ime         varchar(20)     not null,
prezime     varchar(30)     not null,
mob         varchar(20),
datum_zaposlenja date         not null,
posao_id     integer        not null,    
plata        float,
lokacija_id    integer        not null,
manager_id    smallint    not null,
objekat_id    smallint    not null,
foreign key    (posao_id)    references posao(posao_id),
foreign key    (lokacija_id)     references lokacija(lokacija_id),
foreign key    (manager_id)    references radnici(radnici_id),
foreign key    (objekat_id)    references objekat(objekat_id)
);


zasto nece da kreira posljednju tabelu radnici ???

ERROR 1005 (HY000): Can't create table '.\refa\radnici.frm' (errno: 150)



refa
 
Odgovor na temu

chachka
Srđan Mijatov
Programer
BUS Computers
Kikinda

Član broj: 53780
Poruke: 576
*.ADSL.neobee.net.

Sajt: www.baze-podataka.net


+4 Profil

icon Re: problemi s referencama30.05.2007. u 19:08 - pre 176 meseci
references radnici(radnici_id),

treba radnik_id
"The best code is no code at all."
- Zidar (ES član)
"Biggest obstacle to learning
SQL is unlearning procedural
programming."
- Joe
Celko
"Minimize code, maximize data."
- A. Neil Pappalardo
 
Odgovor na temu

refa
Tuzla

Član broj: 60356
Poruke: 59
*.22.52.190.adsl.nextra.cz.



Profil

icon Re: problemi s referencama30.05.2007. u 19:59 - pre 176 meseci
eee hvala ljudi
izivnite sto ne vidim te banalne greske
:)
premoren sam

refa
 
Odgovor na temu

refa
Tuzla

Član broj: 60356
Poruke: 59
*.22.52.190.adsl.nextra.cz.



Profil

icon Re: problemi s referencama30.05.2007. u 23:46 - pre 176 meseci
Code:


create table drzava(
drzava_id     smallint     not null    primary key, 
drzava_ime     varchar(50)
);

create table kanton(
kanton_id     smallint     not null    primary key,
kanton_ime     varchar(50),
drzava_id     smallint      not null,
foreign key     (drzava_id)     references drzava(drzava_id)

);


create table lokacija(
lokacija_id     integer     primary key,
adresa         varchar(50),
postanski_broj     integer,
grad         varchar(50),
kanton_id     smallint,
foreign key    (kanton_id)     references kanton(kanton_id)
);

create table objekat(
objekat_id     smallint primary key,
objekat_ime     varchar(50),
lokacija_id    integer,
manager_id     smallint,
foreign key    (lokacija_id) references lokacija(lokacija_id)
);

create table posao(
posao_id     integer     primary key, 
posao_vrsta    varchar(30)     not null,
min_plata    float,
max_plata    float
);

create table radnici(
radnik_id     integer     not null     primary key,
ime         varchar(20)     not null,
prezime     varchar(30)     not null,
mob         varchar(20),
datum_zaposlenja date         not null,
posao_id     integer        not null,    
plata        float,
lokacija_id    integer        not null,
manager_id    smallint    not null,
objekat_id    smallint    not null,
foreign key    (posao_id)    references posao(posao_id),
foreign key    (lokacija_id)     references lokacija(lokacija_id),
foreign key    (objekat_id)    references objekat(objekat_id),
foreign key     (manager_id)    references radnici(radnik_id)
);



ponovo nece da kreira tabelu radnici
ERROR 1005 (HY000): Can't create table '.\djudji\radnici.frm' (errno: 150)

sad je sintaxa ok sve je ok kako ovo da rijesim ???

refa
 
Odgovor na temu

Dejan Topalovic
Dejan Topalović
Senior Oracle DBA & Senior PL/SQL
Developer, Erste Sparinvest (Erste
Bank), Vienna, Austria
Vienna

Član broj: 635
Poruke: 1374
*.it-austria.net.

Sajt: www.baze-podataka.net


+2 Profil

icon Re: problemi s referencama31.05.2007. u 08:14 - pre 176 meseci
Definisi pripadajuce primary keys kao NOT NULL polja:
Code:
create table lokacija(
lokacija_id     integer  NOT NULL   primary key,
adresa         varchar(50),
postanski_broj     integer,
grad         varchar(50),
kanton_id     smallint,
foreign key    (kanton_id)     references kanton(kanton_id)
);

create table objekat(
objekat_id     smallint NOT NULL primary key,
objekat_ime     varchar(50),
lokacija_id    integer,
manager_id     smallint,
foreign key    (lokacija_id) references lokacija(lokacija_id)
);

create table posao(
posao_id     integer  NOT NULL   primary key, 
posao_vrsta    varchar(30)     not null,
min_plata    float,
max_plata    float
);

Blog - baze podataka
---------------------
Oracle OCP DBA (9i & 10g)
Oracle Database: SQL Certified Expert
Oracle OCP Developer
Certified MySQL DBA
 
Odgovor na temu

refa
Tuzla

Član broj: 60356
Poruke: 59
*.de.ibm.com.



Profil

icon Re: problemi s referencama31.05.2007. u 11:26 - pre 176 meseci
nije to problem
ako izbacim strani kljuc
foreign key (manager_id) references radnici(radnik_id)

ako izbacim to liniju u tabeli radnici
kreira se tabela znaci nema veze s tim sto si upravo naveo, ova baza bez problema se kreira pod oraclom ali pod mysql- pravi probleme
i greska je upravo tu sto sam naveo izgleda da strani kljuc ne moze da pokazuje na primarni kljuc u istoj tabeli ???

refa
 
Odgovor na temu

chachka
Srđan Mijatov
Programer
BUS Computers
Kikinda

Član broj: 53780
Poruke: 576
213.244.228.*

Sajt: www.baze-podataka.net


+4 Profil

icon Re: problemi s referencama31.05.2007. u 14:14 - pre 176 meseci
manager_id ti je SMALLINT, a radnik_id je INTEGER. Usaglasi ih.
"The best code is no code at all."
- Zidar (ES član)
"Biggest obstacle to learning
SQL is unlearning procedural
programming."
- Joe
Celko
"Minimize code, maximize data."
- A. Neil Pappalardo
 
Odgovor na temu

[es] :: MySQL :: problemi s referencama

[ Pregleda: 2689 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.