Mam baze danych z tabelami:
CREATE TABLE Pacjent(Imie VARCHAR(20),Nazwisko VARCHAR(20),Dataurodzenia VARCHAR(11),Plec VARCHAR(1),Wiek VARCHAR(3),id_p INTEGER UNIQUE PRIMARY KEY);
CREATE TABLE Dysk(NazwaPlyty VARCHAR(20),DataArch VARCHAR(8),id_p INTEGER,id_d INTEGER UNIQUE PRIMARY KEY);
i teraz chce żeby było tak że jak bede dodawal dane do tabeli Pacjent to jeśli nowy dodawany rekord jest taki sam jak juz istniejacy w bazie(tzn ma takie same pola jak imie, nazwisko , data urodzenia) to żeby nowy rekord sie nie dodawał.
Pomyslałem żeby napisac triggera:
mój pierwszy pomysł. Działa jak jest tylko wpisany pierwszy warunek po where, a w poniższej formie nie działa:
create trigger dodaj_pacjenta before insert on Pacjent
begin
delete from Pacjent where Nazwisko=new.Nazwisko & Imie=new.Imie & Dataurodzenia=new.Dataurodzenia ;
end;
Jednak koncepcyjnie nie chciałbym zeby tak było j.w. bo wiązało by się to ze zmianą id w momencie dodawania takiego samego rekordu, a id bedzie mi potrzebne w tabeli dysk
inymi słowy jak zrobic tak żeby dodawanie nowego takiego samego rekordu do bazy Pacjent nie powodowało dodanie nowego rekordu jesli juz taki w bazie istnieje no i id starego wpisu nie może sie zmienić?