1

如何重置主键(??)我想将我的主键设置为 translate_str ,让它在表中是唯一的,但是我已经创建了表并且在数据库中有很多日期。我的简要代码在https://gist.github.com/poc7667/6076745 谢谢你:)

4

2 回答 2

0

这个答案取决于您使用的 DBMS。

您当然可以删除整个数据库并再次创建它...但是如果您关心的其他表中有数据,那么这是一个坏主意。

我将继续假设您使用的是 SQLite3、MySQL 或 PostgreSQL 之一。

于 2013-07-25T03:53:51.447 回答
0

如果您在 translate_str 列中有多个具有相同值的条目,那么更改您的表以使 translate_str唯一会给您一个错误。

如果您收到错误,请删除重复记录,然后再次进行更改。

为了唯一性,您还可以使用 Rails 模型验证:

validates_uniqueness_of :translate_str

PS。数据库中的 UNIQUE 属性优于 validates_uniqueness_of。如果 rails 同时处理两个请求,原因 validates_uniqueness_of 有时可能会失败。

于 2013-07-25T04:10:06.600 回答