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