Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.05.14;
Скачать: CL | DM;

Вниз

insert into () select from   Найти похожие ветки 

 
jack128 ©   (2006-03-20 00:30) [0]

День добрый.
Есть следующие таблицы
periods(id, caption, start_date) //id герится в тригере,  start_date тоже.
generalization_folders - это обычное дерево (id, caption, parent_id) соответственно parent_id и id связаны FK
generalizations - листья этого дерева. (id, caption, parent_id <- ссылка на folders.id, тоже связана по FK)
Есть такой запрос

insert into periods
 (caption)
select caption from generalizations g

Пытаюсь выполнить в IBExpert - на выходе получаю

Invalid insert or update value(s): object columns are
constrained - no 2 table rows can have duplicate column values.
violation of PRIMARY or UNIQUE KEY constraint "PK_GENERALIZATION_FOLDERS" on table "GENERALIZATION_FOLDERS".

Есть один тонкий момент. ID для всех таблиц берутся из одного генератоора, но в определенный момент я кое чего намудрил и получилось, что gen_general < max(id) from generelization_folders/generalizations. По при этом gen_general > max(id) from periods. то есть при вставки в таблицу periods - проблем быть не должно. Однако проблемы есть. Но когда я выставил генератору нормальное значение (max(generalization_id, generlization_folder_idб period_id))  ошибка исчезла.

Собственно вопрос: что это было??  И почему?? И как PK абсолютно левой таблицы влияет на выполнимость данного запроса??


 
Reindeer Moss Eater ©   (2006-03-20 00:51) [1]

А так:
select g.caption from generalizations g

?


 
jack128 ©   (2006-03-20 10:12) [2]

Reindeer Moss Eater ©   (20.03.06 0:51) [1]
не-а. Тоже самое


 
Johnmen ©   (2006-03-20 10:27) [3]

А что в триггере periods"а?


 
jack128 ©   (2006-03-20 10:39) [4]

стандартный тригер..
CREATE TRIGGER PERIODS_BI FOR PERIODS
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
 IF (NEW.ID IS NULL) THEN
   NEW.ID = GEN_ID(GEN_GENERAL,1);
END


 
jack128 ©   (2006-03-20 10:40) [5]

А!!!  Блин, как всегда.. Там есть еще один трегерок, который вставляет запись как раз в GENERALIZATION_FOLDERS. Ступил. Всем спасибо, вопрос закрыт.


 
Johnmen ©   (2006-03-20 10:42) [6]

Какие ключи/индексы на periods?


 
Johnmen ©   (2006-03-20 10:46) [7]

>jack128 ©   (20.03.06 10:40) [5]

Обычно так и бывает...:)



Страницы: 1 вся ветка

Текущий архив: 2006.05.14;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.054 c
2-1145996978
Неважно
2006-04-26 00:29
2006.05.14
преобразования Hex в TDateTime(или String)


15-1145468151
Geserx
2006-04-19 21:35
2006.05.14
QIP


2-1145808019
mctarik
2006-04-23 20:00
2006.05.14
Вызов процедуры в MessageBox


2-1146048913
Meganop
2006-04-26 14:55
2006.05.14
Вызов exe


15-1145341091
Сергей И
2006-04-18 10:18
2006.05.14
Использование программы с базой Paradox