주요 SQL 데이터베이스는 불리언 타입을 다르게 다룹니다. MySQL과 SQLite는 BOOLEAN
을 각각 TINYINT(1)
와 INTEGER
로 매핑하여 published = 1
과 같은 비교가 가능합니다. 그러나 PostgreSQL은 고유한 BOOLEAN
타입을 가지므로, published = 1
쿼리 시 오류가 발생합니다.
이러한 데이터베이스 간 불일치는 TRUE
와 FALSE
불리언 리터럴을 사용하여 해결됩니다. MySQL과 SQLite에서 TRUE
는 1, FALSE
는 0의 별칭으로 작동하므로, 이들 리터럴은 PostgreSQL 포함 모든 주요 데이터베이스에서 인식됩니다. 따라서 불리언 컬럼 비교 시 항상 TRUE
또는 FALSE
를 사용하면 데이터베이스 호환성이 보장됩니다.
TRUE
와 FALSE
사용은 호환성뿐 아니라 코드 가독성과 유지보수성을 높입니다. 1 또는 0보다 TRUE
또는 FALSE
를 명시적으로 사용하면 쿼리를 읽는 사람이 해당 컬럼이 불리언 타입임을 즉시 파악할 수 있어 코드의 의도가 명확해지고, 미래의 개발자가 쿼리를 이해하고 수정하는 데 크게 기여합니다.