繁体   English   中英

在Rails中添加外键

[英]Add foreign key in Rails

我有两个表, casino_usersaccounts

我想打casino_users.username一个外键引用accounts.email

我尝试了这个:

class AddForeignKeyToCASinoUsers < ActiveRecord::Migration[5.2]
  def up
    add_foreign_key :casino_users, :accounts, column: :username, primary_key: "email"
  end 

  def down
    remove_foreign_key :casino_users, column: :username
  end 
end

但它给我一个错误Cannot add or update a child row: a foreign key constraint fails

我使用的语法有问题吗?

首先猜测是您现有表中的数据与您现在添加的约束不兼容。 如果那似乎不是问题,那么最好提供更多有关此错误发生时间的上下文。 当您尝试运行迁移时,这就是我的假设。

PS:尝试使用一个主键在语法上有意义并且也可能会发生变化,因此您可能会遇到麻烦。 如果您将主键设置为id,并通过id将用户链接到帐户,那么您将有一个更轻松的时间,例如,某天您希望允许用户更改其电子邮件地址。 如果要确保有一个与电子邮件地址关联的帐户,该帐户很容易实现,并且在电子邮件字段上具有唯一约束。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM