У меня есть хранимая процедура, которая должна проверять, добавляется ли художник в таблицу Allowed Nationality
, но она не работает. Код вставляет исполнителя, находятся ли они в таблице Allowed Nationality
или нет. Может ли кто-нибудь сказать мне, что я сделал неправильно?хранимая процедура в SQL
DELIMITER //
CREATE PROCEDURE `InsertNewArtistCheck`
(IN newLastName Char(25),
IN newFirstName Char(25),
IN newNationality Char(30),
IN newDateOfBirth Numeric(4),
IN newDateDeceased Numeric(4))
BEGIN
DECLARE varRowCount Int;
SELECT Nation INTO varRowCount
FROM ALLOWED_NATIONALITY
WHERE Nation = newNationality;
IF (varRowCount < 0)
THEN
ROLLBACK;
SELECT 'Nationality Not Allowed' AS ErrorMessage;
END IF;
INSERT INTO ARTIST (LastName, FirstName, Nationality,
DateOfBirth, DateDeceased)
VALUES (newLastName, newFirstName, newNationality,
newDateOfBirth, newDateDeceased);
SELECT 'New artist data added to database' AS InsertStatus;
END//
DELIMITER ;
Является ли Nation символом 'char (30)' или 'varchar (30)' в определении таблицы? Если это «varchar (30)», то по крайней мере часть проблемы связана с конечными пробелами. – NotMe