sql >> Database teknologi >  >> RDS >> Sqlserver

Fremmednøgleproblem med flere db i én transaktion

Nå, Id kolonner er ikke meningsfulde "nøgler", og de vil snuble dig over det hele. De formodes at være meningsløse, fysiske identifikatorer, og du har tillagt dem mening. Når du kræver, at de samme Ids findes i en anden database.

Har du løst FK-overtrædelsen? Du har sandsynligvis et helt andet Id for DB1 rækken, i DB2; og helt sikkert forskellige overordnede Ids .

Du skal konsekvent ikke angiv et Id værdi, og lad serveren udfylde den, eller altid angiv et Id værdi, i begge databaser.

Det andet problem er, at du ikke tænker transaktionsmæssigt. Multi-db transaktioner er overhovedet ikke noget problem. Så glem Id kolonne, hvad den indeholder, og brug de rigtige nøgler til tabellen, i begge Dbs. ids vil være anderledes, men hvem bekymrer sig (det betyder frigør behovet for at tillægge mening til den meningsløse identifikator).



  1. SQL Server Passthrough-forespørgsel som grundlag for et DAO-postsæt i Access

  2. Skemabinding med beregnet kolonnefunktion

  3. GRUPPER EFTER efter BESTIL EFTER

  4. Ecto-forespørgsel og tilpasset MySQL-funktion med variabel aritet