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

如何在Informix数据库中存储布尔值?插入语句报错求助

在IBM Informix Dynamic Server 14.10.FC10AEE中正确插入布尔值的方法

问题描述

使用的插入语句:

INSERT INTO person ('name', is_active)
VALUES ('peter', true);

对应表结构:

columnData type
idserial
namechar(50)
is_activeboolean

执行语句时出现错误:

SQL Error [42000]: A syntax error has occurred.

尝试将true改为1后,又出现错误:

SQL Error [IX000]: Value does not match the type of column (is_active).

请问如何在Informix数据库中正确存储布尔值?

正确处理方式

1. 修正列名的引号问题

Informix中列名不能用单引号包裹(单引号仅用于字符串常量),原语句里'name'的单引号是语法错误的核心原因之一,需去掉单引号。

2. 布尔值的合法字面量取值

Informix的boolean类型不支持直接使用true/false或数字1/0,必须使用字符串形式的指定取值:

  • 表示真:'t'、'T'、'y'、'Y'、'1'(注意是字符串格式的'1')
  • 表示假:'f'、'F'、'n'、'N'、'0'(注意是字符串格式的'0')

完整正确的插入语句

-- 插入真值
INSERT INTO person (name, is_active) VALUES ('peter', 't');

-- 插入假值
INSERT INTO person (name, is_active) VALUES ('mary', 'f');

补充说明

如果使用参数化查询,可以直接绑定布尔类型参数;但手写SQL字面量时,必须使用上述字符串形式的取值。

内容的提问来源于stack exchange,提问作者Mi2830

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 10:42:48