使用限制和所有关联转储一个数据库表的最佳方法

时间:2012-11-13 05:35:18

标签: mysql ruby-on-rails yaml mysqldump dump

class Profile < ActiveRecord::Base
  has_many :favorites, :dependent => :destroy
  has_many :friends, :dependent => :destroy
end

我需要像这样的人:

mysqldump --opt --where="1 limit 1000" -uroot development profiles  > profiles.sql

但是这个转储包含(按预期)只有1000个配置文件行,没有关联的朋友,收藏夹。

我应该使用YAML来做,还是应该怎么做?

1 个答案:

答案 0 :(得分:5)

获取前5000条记录:

mysqldump --opt --where="1 limit 5000" -uroot development profiles  > profiles.sql 

然后找到所有与此记录相关的朋友:

mysqldump --opt --lock-all-tables --where="profile_id IN (SELECT * FROM (SELECT id FROM profiles LIMIT 5000) temp);" -uroot development friends  > friends.sql