| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Foxpro/Clipper/Dbase > Удаление записей |
| Автор: CHEZHoK 20.5.2006, 11:10 | ||
| Добрый день.У меня есть 3 таблицы. Table1 индексирую по id (это автоикрементируемое поле).Индекс типа primary. Table2 аналогично.Индекс типа regular. Table3 аналогично.Индекс типа regular. И связываю их. Я хочу удалить те записи в таблица,которые соответствую такому критерию:
Но удаляются записи только из первой таблицы,а мне надо и из Table2,Table3 (там поля surname нет). Спасибо. P.S.использую Visual FoxPro. И связь типа 1:1 |
| Автор: LSD 20.5.2006, 12:38 |
| В Visual FoxPro у foreign key, можно установить on delete cascade? |
| Автор: CHEZHoK 20.5.2006, 13:03 |
| Что-то я не нашёл у ключей такого свойства.А попдробнее не скажите где найти? |
| Автор: CHEZHoK 20.5.2006, 14:09 |
| Нашел я on delete cascade,но в parent таблице удаляется запись,а в 2-х child'aх эти записи только выделяются курсором (т.е. слева от них при просмотре browse появляются черные прямоугольники) |
| Автор: CHEZHoK 20.5.2006, 19:19 | ||
| У меня,конечно,ещё есть одна идея: создаем новую таблицу (free table) с единственным полем id,в котором хранятся те номера,которые нужно удалить их этих таблиц. Все получается и в таблицу заносятся необходимые номера. Далее выполняю запрос:
Но: 1)Выделяется только 1 запись. 2)Она не удаляется,а появляется черный квадратик в левом стороне при просмотре таблиц с помощью browse. |
| Автор: MFoxer 21.5.2006, 11:17 |
| Для начала нужно выдать: SET DELETED ON И если таблицы входят в БД, а не являются FREE, то просто повесить тригеры на удаление. Только тригеры доступны если таблицы присоедены к БД. А все остальное верно, удалять по ID. |