整数列可以为空吗?
Posted
技术标签:
【中文标题】整数列可以为空吗?【英文标题】:Can an integer column be null? 【发布时间】:2018-03-10 16:07:52 【问题描述】:我创建了一个 integer
列,默认情况下为 null
,但是当我输入空双引号 ""
时,它会出现此错误:
ERROR: invalid input syntax for integer: ""
那么integer
列是否必须是0
?
我正在使用 Java 将查询发送到数据库。
【问题讨论】:
此问题应提供表定义和实际使用的INSERT
语句。
【参考方案1】:
整数列可以为空,但''
是一个不为空的空字符串。空整数(或任何其他 sql 类型)的正确语法是 null
。
【讨论】:
我也尝试过输入 null it self 这个词,带引号和不带引号,但仍然是一个错误。【参考方案2】:双引号可用于分隔标识符,例如"myColumnName"
。
单引号用于分隔字符串字面量中的值,例如'my string literal'
。
对于integer
值,您通常使用数字常量 来输入根本不被引用的值,例如123
。 (但您也可以转换字符串文字。)
数值数据类型(integer
、numeric
、double precision
、...)不能存储空字符串(''
),只有字符串类型(text
、varchar
、...)可以。
要传递NULL
值,请使用关键字NULL
。或者从您的INSERT
语句中省略列完全。如果您没有定义不同的列默认值,它会自动默认为NULL
。
您在错误消息中看到的双引号只是 Postgres 为错误消息添加的分隔符,这意味着您传递了一个空字符串 (''
)。如果你真的通过了
空双引号“”
(需要依次单引号:'""'
),您会看到以下错误消息:
ERROR: invalid input syntax for integer: """"
不确定 Java 是如何参与其中的。
考虑一下 Postgres 手册中的 Lexical Structure 章节。
相关:
Insert text with single quotes in PostgreSQL【讨论】:
以上是关于整数列可以为空吗?的主要内容,如果未能解决你的问题,请参考以下文章
Redshift:sortkey 和 distkey 可以为空吗?
我们可以在 info.plist 中为键 NSPhotoLibraryAddUsageDescription 保留描述为空吗?
我们可以在 info.plist 中为键 NSPhotoLibraryAddUsageDescription 保留描述为空吗?