Witam napisałem pewna procedurę ale nie jestem w stanie stwierdzić gdzie jest błąd i czemu po jej wywołaniu nie wprowadza żadnych wartości

DELIMITER //

CREATE PROCEDURE dodaj_książke
(
IN pr_imie text,
IN pr_nazwisko text,
IN pr_tytuł text,
IN pr_regał int(11),
IN pr_gatunek char(20)
)

BEGIN

DECLARE m1 int DEFAULT 0;
DECLARE m2 int DEFAULT 0;
DECLARE m3 int DEFAULT 0;
DECLARE m4 int DEFAULT 0;

set m1 =(SELECT max(id_autora) FROM autor);
set m2 =(SELECT max(ID_Książki) FROM książki);
set m3=m2+1;

IF((SELECT `Imię autora` FROM autor) LIKE pr_imie AND ( SELECT `Nazwisko autora`FROM autor) LIKE pr_nazwisko)

THEN

SET m1 =(SELECT ID_autora FROM autor);
INSERT INTO Książki VALUES (m3,pr_tytuł,m1,pr_regał,pr_gatunek);

ELSE

SET m4=m1+1;
INSERT INTO Autor VALUES (m4,pr_imie,pr_nazwisko);
INSERT INTO Książki VALUES (m3,pr_tytuł,m4,pr_regał,pr_gatunek);

end if;

END; //
DELIMITER ;




Procedura ma pobrać pobrać dane po czym porównać czy istnieje już rekord o takich samych wartościach (imię i nazwisko autora w tabeli "autor") jeżeli tak to wprowadzić dane insertem do tabeli "książki" natomiast jeśli nie utworzyć nowy rekord w tabeli "autor" z podanymi danymi a następnie wprowadzić dane insertem do tabeli "książki"

za wszelką pomoc dziękuje wink.gif