1

我正在 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 => ''})

这是结果记录:

在此处输入图像描述

关于我应该做些什么来分配正确的空字符串有什么建议吗?或者它希望我分配一个 nil 值。它处理空文本和零文本的方式与其他数据库不同吗?我使用我之前提到的 SQL Server 没有任何问题。

4

1 回答 1

2

没有问题。引号不是值的一部分,或者换句话说,它们不存储在数据库中。它们仅在 ruby​​ 中用于指定字符串值(实际值在引号之间)。pgAdmin 碰巧为空字符串显示 '' 以区分空字符串和 NULL 值。NULL 值在 pgAdmin 中显示为空单元格,如果空字符串也导致空单元格,则会令人困惑。

于 2012-09-23T06:59:40.590 回答