Ta bort Primärnyckel som är främmande nycklar i en annan tabell SQL

Permalänk
Medlem

Ta bort Primärnyckel som är främmande nycklar i en annan tabell SQL

Hej,

det jag vill åstakomma är:

Att genom en SQL query ta bort en rad i en tabell där ett en primärnyckel anges.

Problemet är:

Att primäranyckeln används som främmande nyckel i andra tabeller.

Jag får inte ändra något i tabellerna, förutom data.

"Engine Code : 335544466
Engine Message :
violation of FOREIGN KEY constraint "INTEG_69" on table "T2"
Foreign key references are present for the record
At trigger 'CHECK_19';"

Några tips på hur jag ska gå tillväga? Ledsen för luddig förklaring av problemet...

Visa signatur

ASUS Z170-K | ASUS Strix 960 OC 4GB | Crucial Ballistix Sport LT 16GB 2400MHz | Core i5-6600K @4,2Ghz| Corsair 650W | Fractal Design Define S | BenQ XL2411 144hz | Intel 600p M.2 256gb

Permalänk
Medlem

Man lägger ju in sådan just för att undvika att det finns data i andra tabeller som relaterar till information som inte längre finns.

Om du är säker på att du vill radera det hela så får du radera i de andra tabellerna först och slutligen i huvudtabellen, det kan vara trixigt om det finns många relationer.

Ett annat sätt är ju att disabla alla triggers och constraints, exakt hur du gör det beror på vilken databas det handlar om.

Var försiktig är mitt tips, gör ordentliga backups först !!

Permalänk
Medlem
Skrivet av Rellim:

Man lägger ju in sådan just för att undvika att det finns data i andra tabeller som relaterar till information som inte längre finns.

Om du är säker på att du vill radera det hela så får du radera i de andra tabellerna först och slutligen i huvudtabellen, det kan vara trixigt om det finns många relationer.

Ett annat sätt är ju att disabla alla triggers och constraints, exakt hur du gör det beror på vilken databas det handlar om.

Var försiktig är mitt tips, gör ordentliga backups först !!

Tack, ja jag löste det genom att ge alla undertabeller CASCADE ON DELETE till huvudtabellen. Verkar fungera nu. Tack ändå!

Visa signatur

ASUS Z170-K | ASUS Strix 960 OC 4GB | Crucial Ballistix Sport LT 16GB 2400MHz | Core i5-6600K @4,2Ghz| Corsair 650W | Fractal Design Define S | BenQ XL2411 144hz | Intel 600p M.2 256gb

Permalänk
Medlem
Skrivet av haggert:

Tack, ja jag löste det genom att ge alla undertabeller CASCADE ON DELETE till huvudtabellen. Verkar fungera nu. Tack ändå!

livsfarligt.. skriv egen logik för att ta bort relaterade poster istället.. annars är det väldigt lätt att ta bort viktiga segment av misstag..

<- erfarenhet