我正在Postgres上开发rails应用程序。 我遇到的一个问题是当我尝试将空文本('')分配给文本列值时。它只识别我要分配的文本是两个单引号作为文本值。
我的表架构:
create_table :products do |t|
t.integer :seq
t.string :title
t.text :description
t.timestamps
end
我有问题的迁移:
Product.create({:seq => 1, :title => 'green_cos', :description => ''})
以下是结果记录:
有关如何获取正确的空字符串应该做什么的任何建议? 或者它希望我指定一个零值。处理空和零文本的方式与其他数据库有何不同?我之前使用过我在SQL Server中提到的内容没有任何问题。
答案 0 :(得分:2)
没有问题。引号不是值的一部分,换句话说它们不存储在DB中。它们仅在ruby中用于指定字符串值(实际值在引号之间)。 pgAdmin碰巧显示''表示空字符串,以区分空字符串和NULL值。 NULL值在pgAdmin中显示为空单元格如果空字符串也导致空单元格,则会出现混淆。