整数列可以为空吗?

时间:2017-09-28 19:49:02

标签: postgresql null integer quotes postgresql-9.3

默认情况下,我创建的integer列为null,但当我输入空双引号""时,会出现此错误:

ERROR: invalid input syntax for integer: ""

integer列必须是0吗?

我正在使用Java将查询发送到数据库。

2 个答案:

答案 0 :(得分:5)

整数列可以为null,但''为空字符串,不为空。空整数(或任何其他sql类型)的正确语法是null

答案 1 :(得分:4)

双引号可用于分隔标识符,例如"myColumnName"
单引号用于在字符串文字中分隔,例如'my string literal'
对于integer值,您通常使用数字常量来输入未引用的值,例如123。 (但你也可以施放字符串文字。)
数字数据类型(integernumericdouble precision,...)不能存储空字符串(''),只能存储字符串类型(text,{{ 1}},...)可以。
要传递varchar值,请使用关键字NULL。或者从NULL语句中省略 。如果您没有定义其他列默认值,则会自动默认为INSERT

您在错误消息中看到的双引号只是Postgres为错误消息添加的分隔符,这意味着您传递了一个空字符串(NULL)。如果你真的通过了

  

空双引号“”

(需要依次单引号:''),您会看到以下错误消息:

'""'

不确定Java是如何发挥作用的。

考虑Postgres手册中的Lexical Structure章节。

相关: