버그가있는 위치와 상관없이이 두 데이터베이스의 흥미로운 차이점을 보여줍니다 (크로스 db 추상화가 어려운 이유의 예).
MySQL에는 true bool 유형이 없습니다. 부울 값으로 tinyints를 사용합니다. MySQL을
:
SELECT true;
+------+
| TRUE |
+------+
| 1 |
+------+
1 row in set (0.00 sec)
부울 표현식은 정수로 평가 :
select true is not false;
+-------------------+
| true is not false |
+-------------------+
| 1 |
+-------------------+
1 row in set (0.00 sec)
PostgreSQL을에
의 PostgreSQL는 't'중 하나와 진정한 부울 유형을 지원 또는 'f'가 반환됩니다.
select true;
bool
------
t
(1 row)
select true is not false;
?column?
----------
t
(1 row)
참고도 부울로의 int 전송할 수 있습니다 :이 패키지의
select 1::bool;
bool
------
t
(1 row)
select 2::bool;
bool
------
t
(1 row)
select 0::bool;
bool
------
f
(1 row)
분명 두 저자는 부울 유형의 문제를 해결하는 방법에 대한 다른 생각을 가지고 있었다.
아마도 MySQL 드라이버의 버그입니다. 그것을 개발자에게보고하십시오 ... –
저는 차라리 postgres 드라이버의 버그라고 말하고 싶습니다. 1은 int이며 문자열로 반환됩니다 ... – jriff
둘 다 버그가 있습니다. 정수는 MySQL의 경우 이름과 함께 반환되어야합니다 ... –