Mysql 我们真的需要在删除表之前删除外键吗?
迁移Mysql 我们真的需要在删除表之前删除外键吗?,mysql,ruby-on-rails,ruby,Mysql,Ruby On Rails,Ruby,迁移 def self.up create_table :test_drafts do |t| t.string :title, :limit => 255, :null => false t.text :description t.integer :user_id, :null => false t.integer :test_id, :null => false t.timestamps en
def self.up
create_table :test_drafts do |t|
t.string :title, :limit => 255, :null => false
t.text :description
t.integer :user_id, :null => false
t.integer :test_id, :null => false
t.timestamps
end
add_foreign_key(:test_drafts,:user_id,:users,:cascade)
add_foreign_key(:test_drafts,:test_id,:tests,:cascade)
end
def self.down
drop_foreign_key(:test_drafts,:user_id)
drop_foreign_key(:test_drafts,:test_id)
drop_table(:test_drafts)
end
我们真的需要在删除表之前删除外键吗?
我可以直接删除表而不删除外键吗?是的,因为
是的,这是编写迁移的良好实践。很少有数据库不允许在表上定义任何外键时删除表
和Rails提供了在各种数据库上工作的能力,所以理想的是它建议考虑这样的最佳实践。
< P>这是依赖关系。首先,应该删除独立表,即使它们包含外键