Avatar billede c-lund Nybegynder
02. januar 2005 - 14:44 Der er 12 kommentarer og
1 løsning

Tabel relationer

jeg har lavet et ASP script hvor jeg opretter en ny tabel i en database, men hvordan for jeg et felt i den nye tabel til at relatere(join) til en tabel der allerede er i databasen

på forhånd tak
Avatar billede terry Ekspert
02. januar 2005 - 15:03 #1
You need a field which for example is to be your foreign key. This will normally be a long integer.

ALTER TABLE YourTable ADD CONSTRAINT FK_ID FOREIGN KEY (SomeField) REFERENCES SomeOtherTable (SomeOtherField)
Avatar billede terry Ekspert
02. januar 2005 - 15:05 #2
FK_ID is the foreigen key field (long integer for example) which is to refernce the primary key field (SomeOtherField) in the related table (SomeOtherTable)
Avatar billede terry Ekspert
02. januar 2005 - 15:06 #3
actually you do NOT need to have a foreign key/primary key relationship to make a select on two tables but it helps because they will (should) both be indexed.
Avatar billede terry Ekspert
02. januar 2005 - 15:08 #4
sorry! FK_ID is the name of the INDEX which you give to field (SomeField)
Avatar billede c-lund Nybegynder
02. januar 2005 - 15:50 #5
jeg laver en tabel med den her SQL sætning

sqlStatement =
    "CREATE TABLE " + hovedmenu + " (t_ID AUTOINCREMENT CONSTRAINT AUTONUMBER PRIMARY KEY, indhold MEMO, undermenuid NUMBER)";

og feltet "undermenuid" skal relateres til et felt der hedder "u_ID" i en tabel der hedder "undermenu"
Avatar billede terry Ekspert
02. januar 2005 - 15:53 #6
So you should be able to use something like
ALTER TABLE YourTable ADD CONSTRAINT FK_undermenuid FOREIGN KEY (undermenuid) REFERENCES undermenu (u_ID)
Avatar billede terry Ekspert
02. januar 2005 - 15:54 #7
and you need to alter the name of the table YourTable to what ever it is in + hovedmenu +
Avatar billede c-lund Nybegynder
02. januar 2005 - 16:06 #8
cool, hvad hvis der skal være "referentiel integritet" og "kaskadevis sletning af relaterede poster"
Avatar billede terry Ekspert
02. januar 2005 - 16:14 #9
By adding a primary key/foreign key constraint you have referential integrity. I'm not sure if it is at all possible to add cascade deletes using SQL. This isnt common to all databases so I dont think its standard.

I'll see if I can find something and get back!
Avatar billede c-lund Nybegynder
02. januar 2005 - 16:22 #10
ok, thanks alot
Avatar billede terry Ekspert
02. januar 2005 - 17:11 #11
Hi c-lund
I dont seem to be able to find anything concering cascade delete in SQL. If you do find anything yourself can you drop a comment please, and I'll do the same.
Avatar billede c-lund Nybegynder
02. januar 2005 - 18:25 #12
det skal jeg nok, men jeg kan ikke helt få din sætning til at virke, skal den komme efter det her
sqlStatement =
"CREATE TABLE information(t_ID AUTOINCREMENT CONSTRAINT AUTONUMBER PRIMARY KEY, indhold MEMO, undermenuid NUMBER)";
Connection.Execute(sqlStatement);

men hvordan skal den så se ud???
ALTER TABLE YourTable ADD CONSTRAINT FK_undermenuid FOREIGN KEY (undermenuid) REFERENCES undermenu (u_ID)
Avatar billede terry Ekspert
02. januar 2005 - 21:06 #13
You should be able to do both in the same SQL
"CREATE TABLE information(t_ID AUTOINCREMENT CONSTRAINT AUTONUMBER PRIMARY KEY, indhold MEMO, undermenuid NUMBER CONSTRAINT FK_undermenuid REFERENCES undermenu (u_ID))";

You MUST have a table named undermenu with a primary key field named u_ID and it should also be a number field
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
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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