Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
securitate - acum se dau drept - ...

Farmacia Dr Max - Pareri / Sugest...

De unde cumparati suspensii / gar...

[UNDE] Reconditionare obiecte lemn
 Infiltratii casa noua

sugestie usa interior

ANAF si plata la selfpay

Imprimanta ciss rezista perioade ...
 Garmin fēnix 7 / PRO / Saphi...

Care sunt cele mai mari regrete a...

Alfa Romeo Stelvio 2.2 jtd

Intrebari srl nou
 La multi ani @AndReW99!

Alegere masina £15000 uk

TVR vrea sa lanseze o platforma d...

Strategie investie pe termen lung...
 

mysql - adaugare Foreign key intr-un tabel deja existent!

- - - - -
  • Please log in to reply
9 replies to this topic

#1
pinguinul666

pinguinul666

    Senior Member

  • Grup: Senior Members
  • Posts: 4,710
  • Înscris: 06.10.2015
salut

am o mica nelamurire!

Se dau 2 tabele simple  (le vedeti si in imaginea atasata)

Primul, e un tabel cu nume de oameni si orasul lor de provenienta, numit oameni
Al doilea e un tabel cu orasele de unde provin ei, numit orase.

Deoarece vor fi multe repetitii in tabelul cu oameni, in loc sa vad acelasi nume de oras scris de multe ori, am decis sa fie doar o cifra dar cu link (FOREIGN KEY) spre tabelul de orase.

Insa la crearea tabelelor, am "uitat" (intentionat, pt a exersa), sa specific constraint-ul, adica acel foreign key (coloana de nr din tabelul cu orase) si referinta spre tabelul cu orase.

Acum, cum procedez, folosind ALTER TABEL oameni, sa inserez un FOREIGN KEY in statement-ul primului tabel ?

Ce am gasit pe google, e usor confuz

Attached Files



#2
MembruAnonim

MembruAnonim

    MembruAnonim

  • Grup: Banned
  • Posts: 398,284
  • Înscris: 08.10.2015
Sa inteleg, in tabelul A (oameni) tu nu ai coloana 4 (oras) care sa iti lege tabelele intre ele? Daca e asa atunci da folosesti ALTER TABLE ca sa adaugi acea coloana inexistenta.

#3
robbie_ro

robbie_ro

    Active Member

  • Grup: Members
  • Posts: 1,841
  • Înscris: 24.08.2004
ALTER TABLE oameni ADD CONSTRAINT fk_oameni_oras FOREIGN KEY (oras) REFERENCES orase (id)

Edited by robbie_ro, 29 June 2018 - 11:57.


#4
pinguinul666

pinguinul666

    Senior Member

  • Grup: Senior Members
  • Posts: 4,710
  • Înscris: 06.10.2015

 MembruAnonim, on 29 iunie 2018 - 11:51, said:

Sa inteleg, in tabelul A (oameni) tu nu ai coloana 4 (oras) care sa iti lege tabelele intre ele? Daca e asa atunci da folosesti ALTER TABLE ca sa adaugi acea coloana inexistenta.

daca te uiti pe imagine, vezi ca deja am coloana

#5
MembruAnonim

MembruAnonim

    MembruAnonim

  • Grup: Banned
  • Posts: 398,284
  • Înscris: 08.10.2015
Aham, in tabele ai inregistrari? Daca da cand faci selectul selectezi din ambele tabele si faci JOIN dupa ID-ul de oras.

SELECT * FROM oameni JOIN oras ON oameni.oras = oras.nr;


Edited by MembruAnonim, 29 June 2018 - 12:00.


#6
robbie_ro

robbie_ro

    Active Member

  • Grup: Members
  • Posts: 1,841
  • Înscris: 24.08.2004
El intrebase cum creaza un foreign key dupa crearea tabelei, nu cum face interogarea cu join.

#7
MembruAnonim

MembruAnonim

    MembruAnonim

  • Grup: Banned
  • Posts: 398,284
  • Înscris: 08.10.2015
Scuze atunci ca nu am inteles intrebarea exact. Me bad.

#8
pinguinul666

pinguinul666

    Senior Member

  • Grup: Senior Members
  • Posts: 4,710
  • Înscris: 06.10.2015

 robbie_ro, on 29 iunie 2018 - 11:52, said:

ALTER TABLE oameni ADD CONSTRAINT fk_oameni_oras FOREIGN KEY (oras) REFERENCES orase (id)


MULTe multumiri ;)

 MembruAnonim, on 29 iunie 2018 - 11:58, said:

Aham, in tabele ai inregistrari? Daca da cand faci selectul selectezi din ambele tabele si faci JOIN dupa ID-ul de oras.

SELECT * FROM oameni JOIN oras ON oameni.oras = oras.nr;


interesant! multumesc

#9
robbie_ro

robbie_ro

    Active Member

  • Grup: Members
  • Posts: 1,841
  • Înscris: 24.08.2004
Daca in tabela `orase` ramane coloana `nr` si nu `id` , inlocuiesti in ALTER TABLE ..... (id) cu (nr)

#10
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,235
  • Înscris: 24.02.2007
Cand adaug un FOREIGN KEY imi place sa-i spun explicit comportamentul. De exemplu, daca sterg un oras, sa stearga si persoanele ce-l referentiaza, sau sa nu ma lase sa sterg orarul cat timp "e populat".

Anunturi

Chirurgia cranio-cerebrală minim invazivă Chirurgia cranio-cerebrală minim invazivă

Tehnicile minim invazive impun utilizarea unei tehnologii ultramoderne.

Endoscoapele operatorii de diverse tipuri, microscopul operator dedicat, neuronavigația, neuroelectrofiziologia, tehnicile avansate de anestezie, chirurgia cu pacientul treaz reprezintă armamentarium fără de care neurochirurgia prin "gaura cheii" nu ar fi posibilă. Folosind tehnicile de mai sus, tratăm un spectru larg de patologii cranio-cerebrale.

www.neurohope.ro

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate