**Software Versions:**
Rails 3.1.3
MySQL 5.5.21
OS: MacOS 10.7.3
Сегодня я добавил множество ограничений внешнего ключа с помощью гема иностранца в мою базу данных MySQL.Но теперь я получаю исключения «Блокировка ожидания ожидания» на простых вставках:
ActiveRecord::StatementInvalid (Mysql2::Error: Lock wait timeout exceeded;
try restarting transaction
Если я удаляю ограничения внешнего ключа из моей БД, проблема исчезает.
Проблема возникает, когда я пытаюсьдобавить объект с данными для ассоциации has_one с «accepts_nested_attributes_for":
class MyApp::PrimaryData < ActiveRecord::Base
has_one :sub_data, :dependent => :destroy
accepts_nested_attributes_for :sub_data
[...]
end
class MyApp::SubData < ActiveRecord::Base
belongs_to :primary_data
attr_accessible :field1, :field2
[...]
end
table: primary_data
-------------------
- id (integer)
- field1 (string)
[...]
table: sub_data
---------------
- id (integer)
- primary_data_id (integer)
- field1 (string)
- field2 (string)
[...]
-> foreign_key_contraint on primary_data_id --> table primary_datas (id)
Если я просто создаю «PrimaryData» без «SubData» или «PrimaryData»"и" SubData "отдельно, тогда я не получаю никаких ошибок MySQL, только когда я пытаюсь создать" PrimaryData "с некоторыми" SubData "через Rails" acceptpts_nested_attributes_for ".
Кто-нибудь может мне помочь сЭта проблема?Заранее спасибо.