Запросы, планы, оптимизация запросов, ...
Модераторы: kdv, CyberMax
-
sterh
- Сообщения: 2
- Зарегистрирован: 19 дек 2009, 15:24
Сообщение
sterh » 19 дек 2009, 15:31
Всем доброго времени суток. Перейду сразу к делу. Есть база в ней таблицы: Оплата и декларация
1.
Код: Выделить всё
CREATE TABLE "OPLATA"
(
"DATAOPLATA" DATE NOT NULL,
"SUMMOPLATA" INTEGER NOT NULL,
"ID_OPLATA" INTEGER NOT NULL,
"NUMDEKL" INTEGER NOT NULL,
"ID_NALOGOPLAT" VARCHAR(7) NOT NULL,
"KODNALOG" INTEGER NOT NULL,
PRIMARY KEY ("ID_OPLATA")
);
ALTER TABLE "OPLATA" ADD FOREIGN KEY ("ID_NALOGOPLAT") REFERENCES NALOGPLAT ("RNN") ON UPDATE CASCADE ON DELETE CASCADE;
ALTER TABLE "OPLATA" ADD FOREIGN KEY ("ID_OPLATA") REFERENCES SPOSOBOPLATA ("NUMCHEK") ON UPDATE CASCADE ON DELETE CASCADE;
ALTER TABLE "OPLATA" ADD FOREIGN KEY ("KODNALOG") REFERENCES NALOG ("KODNALOG") ON UPDATE CASCADE ON DELETE CASCADE;
2.
Код: Выделить всё
CREATE TABLE "NALOGDEKL"
(
"NUMDEKL" INTEGER NOT NULL,
"VIDDEKL" "DEKL_VID" NOT NULL,
"DATEZAP" DATE NOT NULL,
"ID_NALOGOPLAT" VARCHAR(7) NOT NULL,
PRIMARY KEY ("NUMDEKL")
);
ALTER TABLE "NALOGDEKL" ADD FOREIGN KEY ("NUMDEKL") REFERENCES OPLATA ("ID_OPLATA") ON UPDATE CASCADE ON DELETE CASCADE;
ALTER TABLE "NALOGDEKL" ADD FOREIGN KEY ("ID_NALOGOPLAT") REFERENCES NALOGPLAT ("RNN") ON UPDATE CASCADE ON DELETE CASCADE;
При попытке заполнения таблиц данными выскакивает исключение:v
iolation of FOREIGN KEY constraint "INTEG_54" on table NALOGDEKL, при заполнении таблицы декларация, и
violation of FOREIGN KEY constraint "INTEG_54" on table OPLATA, при заполнении таблицы оплата.
Что делать в данном случае?
Спасибо.
-
kdv
- Forum Admin
- Сообщения: 6595
- Зарегистрирован: 25 окт 2004, 18:07
Сообщение
kdv » 20 дек 2009, 00:00
надеюсь, ответили на sql.ru
-
sterh
- Сообщения: 2
- Зарегистрирован: 19 дек 2009, 15:24
Сообщение
sterh » 20 дек 2009, 18:03
>надеюсь, ответили на sql.ru
Да, спасибо ответили, но возникла еще одна небольшая проблемка, при добавлении первичного ключа к таблице возникает ошибка:
Attempt to store duplicate value (visible to active transactions) in unique index "RDB$PRIMARY84"
null segment of UNIQUE KEY
Что с этим можно сделать?
-
kdv
- Forum Admin
- Сообщения: 6595
- Зарегистрирован: 25 окт 2004, 18:07
Сообщение
kdv » 20 дек 2009, 21:25
Что с этим можно сделать?
программу правильно написать. Вам же сервер человеческим языком говорит, что Вы пытаетесь запихнуть дубля или null в столбец первичного ключа какой-то там таблицы. Ищите, на какой таблице по ПК построен RDB$PRIMARY84.
Еще есть подозрение, что Вы не умеете пользоваться отладчиком. Ошибка наверняка происходит в конкретном месте при конкретном действии. В чем проблема посмотреть, куда и что вставляется, что приводит к этой ошибке?