You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

从MySQL迁移到PostgreSQL:如何向表插入布尔值?

解决PostgreSQL布尔类型插入数据的问题

方法1:使用PostgreSQL原生布尔字面量

PostgreSQL支持多种标准布尔值写法,直接插入即可,大小写不敏感:

-- 插入真值
INSERT INTO test VALUES (TRUE);
INSERT INTO test VALUES (t);
INSERT INTO test VALUES (yes);

-- 插入假值
INSERT INTO test VALUES (FALSE);
INSERT INTO test VALUES (f);
INSERT INTO test VALUES (no);

方法2:显式转换整数为布尔类型

如果习惯用1/0表示布尔值,可通过类型转换让PostgreSQL识别:

-- 使用CAST函数转换
INSERT INTO test VALUES (CAST(1 AS BOOLEAN));
INSERT INTO test VALUES (CAST(0 AS BOOLEAN));

-- 使用PostgreSQL特有的类型转换语法
INSERT INTO test VALUES (1::BOOLEAN);
INSERT INTO test VALUES (0::BOOLEAN);

转换规则:非零整数会转为TRUE,0转为FALSE。

方法3:兼容MySQL写法(不推荐)

若要完全兼容MySQL的整数直接插入逻辑,可通过修改列或添加隐式转换实现,但会破坏PostgreSQL的类型严谨性,生产环境谨慎使用:

-- 修改列,强制转换已有数据(若列有数据)
ALTER TABLE test ALTER COLUMN state TYPE BOOLEAN USING state::BOOLEAN;

-- 创建整数到布尔的隐式转换(需超级用户权限)
CREATE CAST (integer AS boolean) WITH INOUT AS IMPLICIT;

内容的提问来源于stack exchange,提问作者Super Kai - Kazuya Ito

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 16:15:43