Procedura MySQL

0

Witam wszystkich serdecznie.
Chciałbym modyfikować moją procedurę tak, aby nie pozwalałaby na wprowadzenie nowego klienta o takich samych danych (żeby nie powtarzało się Imię, Nazwisko, Miejscowość, Telefon i Kod pocztowy). Nie mam pojęcia jak sobie z tym poradzić. Proszę o pomoc.

Kod mojej procedury:

create procedure dodaj_klienta (
in pr_Imie varchar(45),
in pr_Nazwisko varchar(45),
in pr_Miejscowosc varchar(45),
in pr_Ulica varchar(45),
in pr_Telefon varchar(45),
in pr_Kodpocztowy varchar(45))
begin
declare m1 int default 0;
declare i1 int default 0;
set m1=(select max(idklienta) from klienci);
if ((select count(idklienta) from klienci)=0) then
set i1=1;
else
set i1=m1+1;
end if;
insert into klienci values (i1,pr_Imie,pr_Nazwisko,pr_Miejscowosc,pr_Ulica,pr_Telefon,pr_Kodpocztowy);
end;
0

Dziwna ta procedura, nie bardzo widzę sens takiego budowania id mozna prościej, rozbuduj tylko WHERE

create procedure dodaj_klienta (
    pr_Imie varchar(45),
    pr_Nazwisko varchar(45),
    pr_Miejscowosc varchar(45),
    pr_Ulica varchar(45),
    pr_Telefon varchar(45),
    pr_Kodpocztowy varchar(45))
begin
    declare newid int default 0;

    IF NOT EXISTS (SELECT * FROM KLIENCI WHERE `pr_imie` = pr_imie and `pr_nazwisko` = pr_nazwisko and `pr_Ulica` = pr_Ulica) THEN
        set newid = (select COALESCE(max(idklienta),0)+1 from klienci);
        insert into klienci values (i1,pr_Imie,pr_Nazwisko,pr_Miejscowosc,pr_Ulica,pr_Telefon,pr_Kodpocztowy);
    end if;
end;
1

Klucz unikalny i po sprawie.

0
Marcin.Miga napisał(a):

Klucz unikalny i po sprawie.

W którym miejscu w kodzie i w jaki sposób go zastosować?

1 użytkowników online, w tym zalogowanych: 0, gości: 1