如何使用datamapper和sinatra从postgresql数据库中删除列的数据?

时间:2015-01-28 14:15:23

标签: database postgresql sinatra datamapper

我有一个包含三列(id,name,age)的表。我想保留名称和ID相同,但删除所有年龄数据,并能够重新分配年龄。

即。我想只清除一列中的数据,但不删除整列。

我正在使用sinatra,datamapper和postgresql。

1 个答案:

答案 0 :(得分:1)

以编程方式,您可以执行以下操作:

@myvariable = MyModel.all
@myvariable.map {|m|
    m.update(:age => nil)
}

有关Datamapper的更多信息,请访问:http://datamapper.org/docs/

或者,如果您想手动执行此操作,如果您的数据库位于Heroku上,则可以连接到Heroku上的数据库实例,如下所示:

heroku pg:psql

然后你将连接到数据库,你可以输入像Gus建议的那样的SQL:

update table_name set age = NULL

如果您的应用程序不在Heroku上,并且您只是连接到本地postgresql实例,那就是这样:

psql -d your_database -U your_user

有关psql的更多信息,请访问:http://www.postgresql.org/docs/9.2/static/app-psql.html