제약조건을 사용하여 MySQL에서 빈 문자열 삽입 방지
이 쿼리에서 사용자는 데이터베이스 테이블에 NULL 값이 삽입되는 것을 성공적으로 방지했습니다. . 그러나 애플리케이션 측 검사에만 의존하지 않고 빈 문자열이 삽입되는 것을 방지하려고 합니다.
데이터베이스 제약 조건을 사용하여 이를 달성하려면 테이블 정의에 CHECK 제약 조건을 추가할 수 있습니다.
CREATE TABLE IF NOT EXISTS tblFoo ( foo_id int(11) NOT NULL AUTO_INCREMENT, foo_test VARCHAR(50) NOT NULL CHECK (foo_test <> ''), PRIMARY KEY (foo_id) );
이 제약 조건은 foo_test 열에 빈 문자열이 포함될 수 없도록 보장합니다. 그러나 8.0 이전의 MySQL 버전에서는 CHECK 제약 조건이 구문 분석되지만 모든 스토리지 엔진에서 무시된다는 점에 유의하는 것이 중요합니다. 따라서 빈 문자열을 테이블에 계속 삽입할 수 있습니다.
해결 방법으로 사용자는 트리거를 사용하여 제약 조건을 적용하는 것을 고려할 수 있습니다.
CREATE TRIGGER trg_tblFoo_prevent_empty_string BEFORE INSERT ON tblFoo FOR EACH ROW BEGIN IF NEW.foo_test = '' THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Empty string not allowed in foo_test column'; END IF; END;
이 트리거는 오류를 발생시키고 foo_test 열에 빈 문자열이 삽입되는 것을 방지하세요.
위 내용은 애플리케이션 측 확인 없이 MySQL 테이블에 빈 문자열 삽입을 방지하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!