0

人の姓が完全な大文字でない場合、または名の最初の文字が大文字でない場合、トリガー内でエラーを発生させようとしています。しかし、これらのシナリオが満たされている場合、私のコードは警告を発していないようです。誰かが私にどうすればそうできるか説明してもらえますか?

これは私のテーブルです:

DROP TABLE IF EXISTS people;
CREATE TABLE IF NOT EXISTS people (
Id_People smallint(5) unsigned NOT NULL AUTO_INCREMENT,
Firstname varchar(20) NOT NULL,
Lastname varchar(20) NOT NULL,
Birth     DATE,
PRIMARY KEY (Id_People)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1002 ;DROP TRIGGER IF EXISTS insert_people;

これが私のきっかけです

DROP TRIGGER IF EXISTS insert_people;
DELIMITER $$
CREATE TRIGGER insert_people BEFORE INSERT ON people
FOR EACH ROW BEGIN 
    IF NOT  (NEW.Lastname like UCASE ) THEN 
          SIGNAL SQLSTATE '45000'
            SET MESSAGE_TEXT = 'the lastname must be in full caps ';
           
    ELSE IF
         NOT (NEW.Firstname like ucfirst ) THEN
           SIGNAL SQLSTATE '45000'
            SET MESSAGE_TEXT = 'the first letter of the firstname must be in caps'; 
    
     END IF; 
  END IF;
 
END$$
4

1 に答える 1