跳转到主要内容
MySQL 没有布尔类型。BOOL 是 TINYINT(1) 的别名,它接受 5 和 -1 就像接受 1 一样轻松,并原样返回它们。vsql_boolean 添加了一个 STRICTBOOL 列类型,它存储一个字节,只保存两个值。

安装

如果您使用安装脚本、Docker 镜像或发行版压缩包安装了 VillageSQL, vsql_boolean.veb 已经位于服务器的 lib/veb/ 目录中。 用一条语句将它安装到服务器中:
确认它已存在:
要自行构建,请按照存储库中的 构建说明进行操作。

新增内容

STRICTBOOL 类型

STRICTBOOL 列接受字符串 'true'/'false'、't'/'f'、 'yes'/'no'、'on'/'off' 和 '1'/'0',不区分大小写。请以字符串 形式传入:裸数字会被拒绝。无论以哪种形式写入,它都读回为 true 或 false,并且占用一个字节。

函数

示例

写入了四种拼写,读回的只有两个值。统计一下:
接受的拼写之外的任何值都会在插入时被拒绝: INSERT INTO flags VALUES (5, 'eps', 'maybe') 失败并报 ERROR 1366 (HY000): Incorrect STRICTBOOL value: 'maybe' for column 'active' at row 1。不加引号的 1 同样失败,报 ERROR 3219 (HY000): Incorrect STRICTBOOL value: '1' for column 'active' at row 1。

另请参阅