mirki mam 3 tabele TabA(Id) TabB(Id, IdA) TabC(Id, IdB)
Jak zrobić aby usunięcie rekordu z TabA powodowało usunięcie rekordu z TabB który zawiera określony IdA natomiast usunięcie rekordu z TabB ma tylko wstawić null w TabC na polu IdB
mam tak ale to raczej nie będzie tak działać
CREATE TABLE IF NOT EXISTS tabA (id INTEGER not NULL, PRIMARY KEY ( id ))
CREATE TABLE IF NOT EXISTS tabB (id INTEGER not NULL, id_A INTEGER, PRIMARY KEY ( id ), CONSTRAINT fk_idA FOREIGN KEY (id_A) REFERENCES tabA (id) )
CREATE TABLE IF NOT EXISTS tabC (id INTEGER not NULL, id_B INTEGER, PRIMARY KEY ( id ), CONSTRAINT fk_idB FOREIGN KEY (id_B) REFERENCES tabB (id) ) #programowanie #bazydanych
Jak zrobić aby usunięcie rekordu z TabA powodowało usunięcie rekordu z TabB który zawiera określony IdA
natomiast usunięcie rekordu z TabB ma tylko wstawić null w TabC na polu IdB
mam tak ale to raczej nie będzie tak działać
CREATE TABLE IF NOT EXISTS tabA (id INTEGER not NULL, PRIMARY KEY ( id ))
CREATE TABLE IF NOT EXISTS tabB (id INTEGER not NULL, id_A INTEGER, PRIMARY KEY ( id ), CONSTRAINT fk_idA FOREIGN KEY (id_A) REFERENCES tabA (id) )
CREATE TABLE IF NOT EXISTS tabC (id INTEGER not NULL, id_B INTEGER, PRIMARY KEY ( id ), CONSTRAINT fk_idB FOREIGN KEY (id_B) REFERENCES tabB (id) )
#programowanie #bazydanych
ON DELETE CASCADE/ ON DELETE SET NULL
Komentarz usunięty przez autora