lukaskolista
2.05.2014, 14:37:13
Czesc, mam pytanie odnosnie walidacji po stronie bazy danych. Czy da sie sprawdzic poprawnosc rekordu przed jego wczytaniem do tabeli po stronie bazy danych? Chodzi o sprawdzenie wszystkich constraintow typu klucze obce, not null, unique i rozne checki. Podczas insertu zwracany jest pierwszy napotkany blad, a ja chcialbym otrzymac wszystkie.
Pyton_000
5.05.2014, 06:37:37
lukaskolista
5.05.2014, 10:32:01
Tylko ze w postgresql jest mozliwosc robienia checkow, czyli definiowania regul poprawnosci dla wartosci kolumn ze tak to nazwe wbudowanych w tabele, bez zadnych triggerow i to chcialbym sprawdzic dla wszystkich kolumn, bez pisania dodatkowych procedur dla kazdej tabeli - najwyzej jedna wspolna proedura.
Pyton_000
5.05.2014, 10:55:46
Było tak od razu że to PGSQL, nie da się. Przy pierwszym błędzie jest robionby throw i dalej nie jest już wykonywane.
lukaskolista
5.05.2014, 12:36:55
Myslalem, zeby z information_schema pobrac constrainty typu check i jakos je uruchomic EXECUTE (string), tylko nie bardzo mam pomysl jak przekazac do nich wartosci kolumn. Parametry odpadaja, bo musza byc poprzedzone :(dwukropkiem). Jest jeszcze mozliwosc podmiany nazw kolumn w stringu checka na wartosc NEW.kolumna, ale to raczej sredni pomysl.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.