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

Povezivanje dve tabele pomocu foreign keys...Pomoc

[es] :: MySQL :: Povezivanje dve tabele pomocu foreign keys...Pomoc

[ Pregleda: 3723 | Odgovora: 11 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

djovan01

Član broj: 75700
Poruke: 196
208.65.70.*



Profil

icon Povezivanje dve tabele pomocu foreign keys...Pomoc26.12.2006. u 19:28 - pre 167 meseci
kada kreirate tabelu1 i u njoj definisete Primary key i Foreign Key koji references primary key u tabeli2 znaci da ce foreign key vrednost biti prenesena iz njegove tabele2 u tabelu1? Jesam li u pravu? Kreirala sam bazu sa tabelama i bila ubedjena da sam ih povezala preko Foreign Key-a. Ovako sam ja to uradila. U cemu je moja greska?


CREATE TABLE customer
(c_id INT(6),
c_name VARCHAR(10),
contact_name VARCHAR(20),
phone INT(10),
email VARCHAR(40),
j_location VARCHAR(40),
start_date VARCHAR(10),
e_id INT(10),
f_id INT(10),
p_id INT(10),
r_id INT(10),
CONSTRAINT customer_c_id_pk PRIMARY KEY(c_id),
CONSTRAINT customer_e_id_fk FOREIGN KEY(e_id) REFERENCES facility(e_id));

CREATE TABLE facility
(c_id INT(6),
hours VARCHAR(10),
ceiling_ht VARCHAR(10),
floor VARCHAR(10),
loading_dock VARCHAR(4),
ground_door VARCHAR(4),
crane VARCHAR(4),
CONSTRAINT facility_c_id_pk PRIMARY KEY(c_id));




 
Odgovor na temu

mb_sa

Član broj: 50529
Poruke: 172
*.PPPoE-2558.sa.bih.net.ba.



Profil

icon Re: Povezivanje dve tabele pomocu foreign keys...Pomoc26.12.2006. u 21:30 - pre 167 meseci
Code:
CONSTRAINT customer_e_id_fk FOREIGN KEY(e_id) REFERENCES facility(c_id));


Mislim da bi ovako trebalo!
 
Odgovor na temu

357_97

Član broj: 53056
Poruke: 104
*.eunet.yu.



+5 Profil

icon Re: Povezivanje dve tabele pomocu foreign keys...Pomoc26.12.2006. u 21:53 - pre 167 meseci
Posto me je neko vec preduhitrio skrenucu paznju samo na to da FOREIGN KEY podrzava samo InnoDB engine. Vise o svemu ovde.
 
Odgovor na temu

mb_sa

Član broj: 50529
Poruke: 172
*.PPPoE-787.sa.bih.net.ba.



Profil

icon Re: Povezivanje dve tabele pomocu foreign keys...Pomoc26.12.2006. u 22:07 - pre 167 meseci
Citat:
357_97: Posto me je neko vec preduhitrio skrenucu paznju samo na to da FOREIGN KEY podrzava samo InnoDB engine. Vise o svemu ovde.


Da, da! Inace, MyISAM je defaultni DB engine u mySQLu, sa obzirom da nije naveden prilikom kreiranej tabele!
 
Odgovor na temu

djovan01

Član broj: 75700
Poruke: 196
208.65.70.*



Profil

icon Re: Povezivanje dve tabele pomocu foreign keys...Pomoc27.12.2006. u 13:13 - pre 167 meseci
prvi put cujem za InnoDB posto sam pocitala nesto o tome da li mozete mi reci da ukoliko znaci specifikujem ENGINE=InnoDB; da ce moj foreign key raditi tj da ce moje tabele biti povezane kako treba ?
 
Odgovor na temu

mb_sa

Član broj: 50529
Poruke: 172
*.PPPoE-367.sa.bih.net.ba.



Profil

icon Re: Povezivanje dve tabele pomocu foreign keys...Pomoc27.12.2006. u 15:49 - pre 167 meseci
Citat:
djovan01: prvi put cujem za InnoDB posto sam pocitala nesto o tome da li mozete mi reci da ukoliko znaci specifikujem ENGINE=InnoDB; da ce moj foreign key raditi tj da ce moje tabele biti povezane kako treba ?


Da! uostalom probaj :)
 
Odgovor na temu

djovan01

Član broj: 75700
Poruke: 196
208.65.70.*



Profil

icon Re: Povezivanje dve tabele pomocu foreign keys...Pomoc27.12.2006. u 16:48 - pre 167 meseci
ne to nije pomoglo da tabele budu povezane. sta sam uradila je sledece. Svakoj tabeli sam uradila izmenu ALTER TABLE table_name ENGINE=INNODB, medjutim i dalje foreign keys nemaju nikakvog efekta. Jedina izmena je sto u okviru svake tabele na mestu Type gde je pisalo MyISAM sad pise InnoDB. Sta sada da radim?
 
Odgovor na temu

mb_sa

Član broj: 50529
Poruke: 172
*.PPPoE-367.sa.bih.net.ba.



Profil

icon Re: Povezivanje dve tabele pomocu foreign keys...Pomoc27.12.2006. u 20:32 - pre 167 meseci
Citat:
djovan01: ne to nije pomoglo da tabele budu povezane. sta sam uradila je sledece. Svakoj tabeli sam uradila izmenu ALTER TABLE table_name ENGINE=INNODB, medjutim i dalje foreign keys nemaju nikakvog efekta. Jedina izmena je sto u okviru svake tabele na mestu Type gde je pisalo MyISAM sad pise InnoDB. Sta sada da radim?


Trebalo bi da je pomoglo, ako si sve ispravno uradila?! Sta za tebe znaci da FK nemaju nikakvog efekta?

Hajdem, da probamo ovako ;)

Code:
CREATE TABLE facility
(f_id INT(6),
hours VARCHAR(10),
ceiling_ht VARCHAR(10),
floor VARCHAR(10),
loading_dock VARCHAR(4),
ground_door VARCHAR(4),
crane VARCHAR(4),
CONSTRAINT facility_f_id_pk PRIMARY KEY(f_id)) ENGINE=InnoDB;

CREATE TABLE customer
(c_id INT(6),
c_name VARCHAR(10),
contact_name VARCHAR(20),
phone INT(10),
email VARCHAR(40),
j_location VARCHAR(40),
start_date VARCHAR(10),
e_id INT(10),
f_id INT(10),
p_id INT(10),
r_id INT(10),
CONSTRAINT customer_c_id_pk PRIMARY KEY(c_id),
CONSTRAINT customer_f_id_fk FOREIGN KEY(f_id) REFERENCES facility(f_id)) ENGINE=InnoDB;


Kreiraj ove dvije tabele (u tabeli facility nemoj unostii nikakve recorde), a zatim izvrsi ovaj INSERT:

Code:

INSERT INTO customer (c_id,f_id) VALUES (1,1);


pa nam javi da li se je ovaj INSERT izvrsio i koju poruku mysql javlja!
 
Odgovor na temu

djovan01

Član broj: 75700
Poruke: 196
208.65.70.*



Profil

icon Re: Povezivanje dve tabele pomocu foreign keys...Pomoc27.12.2006. u 20:57 - pre 167 meseci
Posle ubacivanja dobijem sledecu gresku:


Error

SQL query:

INSERT INTO customer( c_id, f_id )
VALUES ( 1, 1 )

MySQL said: Documentation
#1216 - Cannot add or update a child row: a foreign key constraint fails
 
Odgovor na temu

mb_sa

Član broj: 50529
Poruke: 172
*.PPPoE-367.sa.bih.net.ba.



Profil

icon Re: Povezivanje dve tabele pomocu foreign keys...Pomoc27.12.2006. u 21:08 - pre 167 meseci
Citat:
djovan01: Posle ubacivanja dobijem sledecu gresku:


Error

SQL query:

INSERT INTO customer( c_id, f_id )
VALUES ( 1, 1 )

MySQL said: Documentation
#1216 - Cannot add or update a child row: a foreign key constraint fails


Da, tu gresku i trebas dobiti! FK constraint je odradio svoj posao. Procitaj nesto teorije o foreign key constraint-ima!

pozdravi
 
Odgovor na temu

djovan01

Član broj: 75700
Poruke: 196
208.65.70.*



Profil

icon Re: Povezivanje dve tabele pomocu foreign keys...Pomoc28.12.2006. u 13:01 - pre 167 meseci
Jos jedno pitanje. Ja mislim da razumem koncept kod FK ono sto sam do sada procitala kaze da je FK polje koje povezuje dve tabele i FK u tabeli2 prestavlja PK u tabeli1 e sada oko cega sam se ja pogubila je sledece. Da li kada se promeni PK vrednost za svaki ubacen red automatski se menja vrednost u FK. Jeli tako?
 
Odgovor na temu

357_97

Član broj: 53056
Poruke: 104
*.eunet.yu.



+5 Profil

icon Re: Povezivanje dve tabele pomocu foreign keys...Pomoc28.12.2006. u 21:52 - pre 167 meseci
Citat:
djovan01: Jos jedno pitanje. Ja mislim da razumem koncept kod FK ono sto sam do sada procitala kaze da je FK polje koje povezuje dve tabele i FK u tabeli2 prestavlja PK u tabeli1 e sada oko cega sam se ja pogubila je sledece. Da li kada se promeni PK vrednost za svaki ubacen red automatski se menja vrednost u FK. Jeli tako?


Izgleda da nisi bas razumela sustinu FK-a... Pogledaj ovde, valjda ce ti to pomoci jer je clanak na srpskom jeziku!
 
Odgovor na temu

[es] :: MySQL :: Povezivanje dve tabele pomocu foreign keys...Pomoc

[ Pregleda: 3723 | Odgovora: 11 ] > FB > Twit

Postavi temu Odgovori

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