05. september 2003 - 10:28Der er
9 kommentarer og 1 løsning
Overføre autonummereringsværdi til anden tabel
Hej
Jeg har en tabel:
Tabel 1 Id (autonummerering) Value 1 asdf 2 qwer
Når jeg opretter en ny record i Tabel 1 vil jeg gerne linke recorden til Tabel 2, men hvordan får jeg overført autonummereringsværdien. Det virker lidt bøvlet at først skulle oprette recorden, dernæst undersøge hvad autonummereringsværdien blev, og så først derefter oprette en record i Tabel 2.
På et tidspunkt synes jeg at jeg læste noget om at det kan gøres i ét go, men hvordan?
I dette særtema om aspekter af AI ser vi på skiftet fra sprogmodeller til AI-agenter, og hvordan virksomheder kan navigere i spændet mellem teknologisk hastighed og behovet for menneskelig kontrol.
It all depends on HOW you are working with this data!
If you have a form in an application which is based in table2 then you may have a drop down list showing values from table1. When you choose a value from the drop down (table1) the ID goes into the foreign key of table2!
Desværre skal hele operationen foretages i "one go", dvs. at der f.eks. oprettes en record i Tabel 1 som f.eks. får autonummereringsværdien 581. Denne værdi skal så overføres til Tabel 2.
ocp>lets say he uses a trigger, normally there will be other fields in table2, how does he get the data into those fields without entering them? If there are no other fields what is the point in having the table?
Nej, der er mange felter. Jeg har kigget lidt rundt på nettet og de fleste steder ser det ud til at de anbefaler en Trigger. En anden mulighed er at skrive en Stored Procedure. Det undrer mig bare at der ikke er en eller anden generisk måde at gøre det på (jeg mener f.eks. at PHP har en metode indbygget der kan gøre det her umiddelbart).
speder>Can you explain your relationships! If ID in table1 is the primary key (unique) then it is the foreign key in table2. Which in a one to many relationship will mean that itis NOT unique (more than one record has the same value).
Jeg har svært ved at forestille mig hvordan PHP skulle kunne gøre noget som helst der har med håndtering af identity-kolonner at gøre - PHP er jo bare et programmeringssprog. Denne løsning giver dig rimeligt frie hænder:
create proc spInsertRow @test varchar(50) as insert into tbl1 values(@test) select @@identity
og håndtere det således fra koden:
nytID = cn.execute("spInsertRow 'dette er en ny række'").fields(0).value cn.execute("insert into tbl2 values(" & nytid & ",'id for ny række i tbl 1')")
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.