Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MySQL > Удаление из таблицы


Автор: newnata 22.6.2008, 11:46
У меня есть главная таблица(Студенты) и две таблицы простых(Языки и Данные).Как сделать так что если я удаляю из таблицы например Языки ,то удалялась запись и в таблице Студенты. 


procedure TForm1.Button10Click(Sender: TObject);
var s:string;
begin
if MessageDlg('Вы уверены?', mtWarning, mbOkCancel, 0)=mrOk then
begin
s:='delete from styz where id='+ADOQuery1.Fields.Fieldbyname('id').AsString;
ADOConnection1.Execute(s);
ADOQuery1.Close;
ADOQuery1.Open;
end;
end;
      

Автор: Magnifico 22.6.2008, 12:07
разве в mysql нет каскадного удаления?
http://dev.mysql.com/doc/refman/5.0/en/innodb-foreign-key-constraints.html

Автор: Бонифаций 24.6.2008, 15:08
не для всех storage engines. Для myisam к примеру referential integrity не фунгует... так что надо innodb ставить чтобы было каскадное удаление

Автор: MuToGeN 25.6.2008, 01:17
Кстати, по умолчанию всегда используется именно MyISAM, наиболее "родной" для MySQL движок хранения данных. InnoDB обычно бывает просто вырублен в конфиге (но не всегда, в зависимости от версии).

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)