sql >> Databáze >  >> RDS >> Sqlserver

Problém s cizím klíčem s více db v jedné transakci

No, Id sloupce nejsou smysluplné „klíče“ a všude vás podrazí. Mají to být bezvýznamné fyzické identifikátory a vy jste jim přikládali význam. Když požadujete stejné Id existují v jiné databázi.

Vyřešili jste přestupek proti FK? S největší pravděpodobností máte úplně jiné Id pro řádek DB1 v DB2; a jistě i jiná nadřazená Id .

Musíte důsledně ne zadejte Id hodnotu a nechte ji vyplnit na serveru nebo vždy zadejte Id hodnotu v obou databázích.

Druhým problémem je, že neřešíte transakční. Multi-db transakce nejsou vůbec žádný problém. Takže zapomeňte na Id sloupec, co obsahuje, a použijte skutečné klíče pro tabulku v obou Dbs. Id bude jiný, ale koho to zajímá (to znamená zbavit se potřeby přikládat význam bezvýznamnému identifikátoru).



  1. Úloha pgAgent se nezdaří s chybou ověření

  2. Jak zkontrolovat datum poslední změny v uložené proceduře nebo funkci na SQL serveru

  3. Vyberte záznamy vícekrát z tabulky

  4. Zobrazení záznamů z databáze MySQL pomocí JTable v Javě