Я пытаюсь создать каскадный эффект UPDATE и DELETE в базе данных MyISAM (аналогичный эффект, который вы можете создать в таблицах InnoDB с внешними ключами). Два примера таблицы:Zend_Db_Table Cascade DELETE AND UPDATE
- альбомы
- фото (имеет album_id столбец, который является «внешний ключ» к столу альбомов)
Теперь, когда я удалить строку в таблице альбомов, я бы как Zend_Db_Table, чтобы автоматически удалять все связанные строки в таблице фотографий. Это то, что я имею в альбомы таблице:
protected $_name = 'albums';
protected $_dependentTables = array(
'Photos'
);
И у меня есть это в фотографии таблице:
protected $_name = 'photos';
protected $_referenceMap = array(
'Album' => array(
'columns' => array('album_id'),
'refTableClass' => 'Albums',
'refColumns' => array('id')
)
);
Да, когда я удалить строку в таблице альбомы, фотографии из этого альбома сделать не удаляться.
Это, как я удаление альбома:
public function remove($id)
{
$where = $this->getAdapter()->quoteInto('id = ?', $id, 'INTEGER');
return $this->delete($where);
}
Да, я добавил, что там и все еще это не работает. –
каскадная операция запускается только при вызове функции удаления в строке, то есть $ album-> delete(); – Akeem
Да, я знаю, я использую $ this-> delete. Проверьте мой OP. –