Avatar billede kimputer Nybegynder
01. oktober 2002 - 12:03 Der er 10 kommentarer og
1 løsning

Fremmednøgler

Hvordan opretter man to fremmednøgler i en tabel?
Jeg har prøvet flg. men det virker ikke :

  FOREIGN KEY (K_Id) REFERENCES Bruger(Id) ON DELETE CASCADE,
  FOREIGN KEY (K_PostNr) REFERENCES PostBy(PostNr) ON DELETE CASCADE,

Og jeg vil ikke have svar fra folk der begyndet med, ja du kan ikke oprette fremmednøgler eller nå jo men du skal lige huske at slå InnoDB til .... ja det kører som det skal så kom med noget seriøst... :)
Avatar billede disky Nybegynder
01. oktober 2002 - 12:20 #1
ha! du sagde ikke man ikke måtte sige:
Mysql understøtter IKKE foreign keys.
Avatar billede kimputer Nybegynder
01. oktober 2002 - 12:45 #2
narj men æ.... det er gas og jeg kan tage det,
så kom med noget lidt mere seriøs næste gang..
Avatar billede disky Nybegynder
01. oktober 2002 - 13:20 #3
Okay vi prøver igen :-)

Mysql understøtter ikke fremmed nøgler, så det går ingen forskel om de er der eller ej.
Avatar billede kimputer Nybegynder
02. oktober 2002 - 18:07 #4
Hvis jeg sletter fremmednøglen K_PostNr og lader
den anden blive der, ja så virker det skam fint...
men hvis jeg sletter K_ID og lader den anden stå
virker det ikke, så der er noget galt med den nøgle
på et eller andet måde, men en kammerat har skrevet
til mig at det er fordi jeg har glemt INDEX... så det
vil jeg prøve og så skrive tilbage hertil om det var
problemet...
Avatar billede defrost Nybegynder
04. oktober 2002 - 09:16 #5
Disky: Det er forkert. MySQL understøtter fremmednøgler: http://www.mysql.com/doc/en/SEC447.html

Men det er lige lidt nok informationer til at jeg kan gætte mig til, hvad der er galt.
Avatar billede kimputer Nybegynder
04. oktober 2002 - 10:02 #6
jeg har selv løst problemet.... men jeg ved ikke hvorfor det løser problemet.... men når jeg bruger flere fremmednøgler i en tabel, blir' man åbenbart nød til at indeksere dem INDEX på hver fremmednøgle, og vupti så virker det.... jeg troede kun at man indekserede for at optimere søgetiden.... men nå... er der nogle der kan give en forklaring på det ??
Avatar billede disky Nybegynder
04. oktober 2002 - 10:15 #7
Rart du har fået det til at spille.

Hvorfor kan jeg ikke sige, men jeg gætter på det er af performance årsager, så den hurtigere kan se om du forbryder dig mod data integriteten.

p.s. Gider du lukke dit spørgsmål :)
Avatar billede kimputer Nybegynder
04. oktober 2002 - 10:19 #8
ja... men eftersom du ikke kendte til fremmednøgler i mysql vil mine point gå til defrost....
Avatar billede disky Nybegynder
04. oktober 2002 - 12:21 #9
Det er helt okay.

Husk dog at de er understøttet i beta udgaven af MySQL som jeg personligt aldrig ville benytte, da beta udgaver har det med at være buggy :)
Avatar billede defrost Nybegynder
04. oktober 2002 - 17:04 #10
Hehe... Jah. Det står endda i manualen:

Both tables have to be InnoDB type *and there must be an index where the foreign key and the referenced key are listed as the first columns.* InnoDB does not auto-create indexes on foreign keys or referenced keys: you have to create them explicitly.

Mht hvorfor? Tjah. Sådan er det bare. :-)
Avatar billede kimputer Nybegynder
04. oktober 2002 - 17:50 #11
ja man blir' jo klogere for hver dag....hihi
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester