整数列可以为空吗?

efo*_*foc 3 postgresql quotes null integer postgresql-9.3

我创建了一个默认的integer列,null但是当我输入空的双引号时,""它会出现以下错误:

ERROR: invalid input syntax for integer: ""
Run Code Online (Sandbox Code Playgroud)

integer列是否必须0

我使用Java将查询发送到数据库.

Sam*_*man 5

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

  • 我也试过自己输入 null 这个词,带引号和不带引号,但仍然是一个错误。 (4认同)
  • 没有引号的null应该有效 (4认同)

Erw*_*ter 5

双引号可用于分隔标识符,例如"myColumnName"
单引号用于分隔字符串文字,喜欢'my string literal'
对于integer值,通常使用数字常量来输入值,而这些值根本不会用引号引起来123。(但你可以施放一个字符串,太。)
数字数据类型(integernumericdouble precision,...)不能存储空字符串(''),只有字符串类型(textvarchar,...)即可。
要传递NULL值,请使用关键字NULL。或者完全从您的列中忽略该列INSERT声明。如果未定义其他列默认值,则默认为NULL自动。

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

空双引号“”

(这需要依次用单引号引起来'""'),您将看到以下错误消息:

ERROR:  invalid input syntax for integer: """"
Run Code Online (Sandbox Code Playgroud)

不确定Java如何发挥作用。

考虑一下Postgres手册中的词法结构一章。

有关: