Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Удаление записей, из 3 связанных таблиц 
:(
    Опции темы
CHEZHoK
Дата 20.5.2006, 11:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 29.3.2006

Репутация: нет
Всего: нет



Добрый день.У меня есть 3 таблицы.
Table1 индексирую по id (это автоикрементируемое поле).Индекс типа primary.
Table2 аналогично.Индекс типа regular.
Table3 аналогично.Индекс типа regular.
И связываю их.
Я хочу удалить те записи в таблица,которые соответствую такому критерию:
Код
Delete from table1 where surname=thisform.text1.text
 
Но удаляются записи только из первой таблицы,а мне надо и из Table2,Table3 (там поля surname нет).

Спасибо.

P.S.использую Visual FoxPro. И связь типа 1:1 
PM MAIL   Вверх
LSD
Дата 20.5.2006, 12:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: нет
Всего: 538



В Visual FoxPro у foreign key, можно установить on delete cascade


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
CHEZHoK
Дата 20.5.2006, 13:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 29.3.2006

Репутация: нет
Всего: нет



Что-то я не нашёл у ключей такого свойства.А попдробнее не скажите где найти? 
PM MAIL   Вверх
CHEZHoK
Дата 20.5.2006, 14:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 29.3.2006

Репутация: нет
Всего: нет



Нашел я on delete cascade,но в parent таблице удаляется запись,а в 2-х child'aх эти записи только выделяются
курсором (т.е. слева от них при просмотре browse появляются черные прямоугольники) 

Это сообщение отредактировал(а) CHEZHoK - 20.5.2006, 15:50

Присоединённый файл ( Кол-во скачиваний: 1 )
Присоединённый файл  sampleNew.zip 11,80 Kb
PM MAIL   Вверх
CHEZHoK
Дата 20.5.2006, 19:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 29.3.2006

Репутация: нет
Всего: нет



У меня,конечно,ещё есть одна идея:
создаем новую таблицу (free table) с единственным полем id,в котором хранятся те номера,которые нужно удалить их этих таблиц.
Все получается и в таблицу заносятся необходимые номера.
Далее выполняю запрос:
Код

  SELECT id FROM table2 where table2.u_zvan=thisform.text1.Text INTO TABLE ind_to_del
  USE ind_to_del
  DELETE FROM table1 WHERE table1.id=ind_to_del.id
  pack
  DELETE FROM table2 WHERE table2.id=ind_to_del.id
  pack
  DELETE FROM table3 WHERE table3.id=ind_to_del.id
  PACK
  DELETE FROM table4 WHERE table4.id=ind_to_del.id
  PACK

Но:
1)Выделяется только 1 запись.
2)Она не удаляется,а появляется черный квадратик в левом стороне при просмотре таблиц с помощью browse. 
PM MAIL   Вверх
MFoxer
Дата 21.5.2006, 11:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 18.1.2006

Репутация: -1
Всего: нет



Для начала нужно выдать:
SET DELETED ON
И если таблицы входят в БД,  а не являются FREE, то просто повесить тригеры на удаление. Только тригеры доступны если таблицы  присоедены к БД.
А все остальное верно, удалять по ID. 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Foxpro/Clipper/Dbase"
MoLeX

Запрещается!

1. Публиковать ссылки для чисто рекламных целей.

2. Оффтопить, флеймить, говорить не культурно.

Пожалуйста, адекватно задавайте свой вопрос. Тема должна создаваться с названием характеризующем Вашу проблему.

Задавайте вопросы правильно - как спросите, так вам и ответят.

Разрешено!

Давать ссылки на статьи, обзоры, если это не нарушает первый пункт правил.

Задавая вопрос, давайте нужную информацию касающуюся Вашей проблемы. Этим вы ускорите полезные ответы.

P.S. Размещение рекламы будет строго наказываться!



Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MoLeX

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Foxpro/Clipper/Dbase | Следующая тема »


 




[ Время генерации скрипта: 0.1104 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.