Aktywne Wpisy
Smartek +11
Polećcie jakiś fajny (może jakiś niezbyt oczywisty?) #serial do obejrzenia, nie musi być najnowszy, ale też żeby nie była to jakaś staroć sprzed 20 lat. Z ostatnich, które oglądałem i które mi się podobały to W Powietrzu, Rozdzieleni, From, The Last Man on Earth. Większość hitów typu Lost, Fargo, True Detective czy Breaking Bad widziałem. #seriale #coobejrzec #pytanie
PakaBaka +138
Kup auto za 50 000zl w salonie w 2008r.
Używaj 10 lat, dbaj, serwisuj, remontuj
Sprzedaj za 20 000 zł w 2018r. (równowartość 15 500zł w 2008r).
Kolejna osoba jeździ 5 lat
Sprzedaje za 12 000 w 2023r. (równowartość 8600zł w 2008r.)
Kup mieszkanie za 600 000 w 2008r.
W 2023 jest warte 1 120 000 (równowartość 648 000 w 2008r.)
Właśnie dla tego potrzeba silnych regulacji na rynku mieszkaniowym – bo
Używaj 10 lat, dbaj, serwisuj, remontuj
Sprzedaj za 20 000 zł w 2018r. (równowartość 15 500zł w 2008r).
Kolejna osoba jeździ 5 lat
Sprzedaje za 12 000 w 2023r. (równowartość 8600zł w 2008r.)
Kup mieszkanie za 600 000 w 2008r.
W 2023 jest warte 1 120 000 (równowartość 648 000 w 2008r.)
Właśnie dla tego potrzeba silnych regulacji na rynku mieszkaniowym – bo
Id,
...,
TeamName
Tabela B:
Id,
AId, (referencja do A)
...,
TeamName
Chciałbym żeby przy dodawaniu rekordu to Tabeli B wywalało błąd jeżeli TeamName będzie inny niż TeamName dla referencji rekordu w Tabeli A. Da się zrobić takiego constrainta?
#bazydanych #sql #programowanie
Chciałbym mieć dostęp do TeamName w tabeli B bez konieczności JOIN'a oraz dodawać rekordy bez wcześniejszego pobierania rekordów z tabeli A w celu walidacji.
Jeżeli nie mogę założyć jakiegoś constrainta to trudno - już w kontrolerze w API będę sobie to walidował, ale chciałem tego uniknąć.
coś w ten deseń:
https://stackoverflow.com/questions/4253960/sql-how-to-properly-check-if-a-record-exists
druga odpowiedź
Zwyczajnie żeby SQL rzucało error tak samo jak próbujesz dodać referencję do klucza, który nie istnieje :P
no chyba, ze masz skonczoną ilość wartości jakie można tam włożyć, to wtedy bez problemu mozesz ominac A
Nie do końca może o to Ci chodzić, ale da radę to wykonać tworząc klucz złożony/kompozytowy na kolumnę Id i TeamName. Poza tym możesz jeszcze stworzyć trigger albo constraint z funkcją (która pobiera dane z tabeli obcej), ale tutaj performance może być słaby
@Priya: dzięki za pomysł z kluczem
@Priya - działa. co masz na myśli? mogę niezależnie dodawać i aktualizować rekordy w tabeli A.
ALTER TABLE TableA
ADD UNIQUE (Id, TeamName)
ALTER TABLE TableB
ADD FOREIGN KEY(Id, TeamName)
REFERENCES TableA(Id, TeamName)
ON DELETE CASCADE
ON UPDATE CASCADE;
Teraz muszę to napisać w CodeFirst w entity framework ( ͡° ͜ʖ