Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.11.2013, 14:35   #1
Azrael2155
Пользователь
 
Регистрация: 05.11.2013
Сообщений: 13
По умолчанию Помогите, очень срочно, если не затруднит.

Пытаюсь совершить каскадное удаление в таблице...
Таблица связана с тригерами, процедурами и другими таблицами и их много, в ограничениях поставил на удаление и изменение CASCADE, но удаление по обычному принципу, например:

Цитата:
DELETE FROM hospitals WHERE ID <> 323
не производится. Пишет вот такую бабуйню:

Цитата:
Код SQL
Violation OF FOREIGN KEY CONSTRAINT "FK_HV_HOSPITALS_ID" ON TABLE "HOSP_VERSIONS".
FOREIGN KEY REFERENCES are present FOR the record.
At TRIGGER 'CHECK_9'.

SQL Code: -530
IB Error NUMBER: 335544466

Помогите пожалуйста.




Работаю в SQL Manager for InterBase and firebird
Azrael2155 вне форума Ответить с цитированием
Старый 07.12.2013, 00:33   #2
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

Цитата:
Сообщение от Azrael2155 Посмотреть сообщение
ограничениях поставил на удаление и изменение CASCADE,



не производится. Пишет вот такую бабуйню:




Помогите пожалуйста.




Работаю в SQL Manager for InterBase and firebird
если удаление поставили CASCADE . То есть . ON CASCADE UPDATE ON CASCADE DELETE . То не будет такой сообщения если вы удаляйте из родительский таблице .
на пример


Код:
CREATE TABLE Categ (
    [Id]          INT            IDENTITY (1, 1),
    [Name]        NVARCHAR (100) NOT NULL,
    [Description] NVARCHAR (500) NULL,
    CONSTRAINT [PK_dbo.Categ] PRIMARY KEY CLUSTERED (Id)
);

Код:
CREATE TABLE Prod (
    Id          INT            IDENTITY (1, 1) NOT NULL,
    CategoryId  INT            NOT NULL,
    Name        NVARCHAR (100) NOT NULL,
    Cost       FLOAT (53)     NOT NULL,
    Count       INT            NOT NULL,
    Description NVARCHAR (500) NULL,
    Icon        NVARCHAR (MAX) NULL,
    CONSTRAINT [PK_dbo.Prod] PRIMARY KEY CLUSTERED (Id ASC),
    CONSTRAINT [FK_Prod_Categ] FOREIGN KEY(CategoryId) REFERENCES Categ(Id) ON DELETE CASCADE  ON UPDATE CASCADE
               );

Categ - родительский
Prod - дочерний

В таком случае если удаление и изменение запись Categ - родительский таблице ... тоже удалится все запись Prod - дочерний таблице ....


Я думаю, что вас отсутствует ON DELETE CASCADE
xxbesoxx вне форума Ответить с цитированием
Старый 08.12.2013, 06:39   #3
Paymer
Новичок
Джуниор
 
Регистрация: 08.12.2013
Сообщений: 2
По умолчанию

Смотрите код триггера на события BEFORE DELETE и AFTER DELETE, видимо именно там происходит ошибочное действие, которое блокирует транзакцию возвращая ее в первозданный вид.
Скорее всего там производится попытка удаления не существующей строки, и прии этом в команду не включено IGNORE.
Лучший софт у Paymer-Soft!
Paymer вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверьте,please код,если не затруднит! -ushёl- Общие вопросы C/C++ 1 17.11.2009 08:10
Помогите создать програму для роботы с файлами, пожалуйста помогите нужно очень срочно Сергей Человек Фриланс 3 06.07.2009 19:30