![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ошибка при добавлении записи в таблицу Interbase
sashag © (2003-07-30 09:38:00)Ири выполнении "insert into table1 (name) values "aaa""
возникает ошибка
"violation of PRIMARY or UNIQUE KEY constraint "INTEG_13" on table "TABLE1""
Таблица имеет структуру
(id INTEGER NOT NULL,
name CHAR(50),
( id)Ири выполнении "insert into table1 (name) values "aaa""
возникает ошибка
"violation of PRIMARY or UNIQUE KEY constraint "INTEG_13" on table "TABLE1""
Таблица имеет структуру
(id INTEGER NOT NULL,
name CHAR(50),
PRIMARY KEY(id))
Поле id - автоинкрементное (триггер со счетчиком)
Не могу понять причину этой ошибки. Может, кто встречался с таким?
Соловьев (2003-07-30 10:14:00) [21]
> ну это смотря какой запрос. просто используя тригеры я в
> свое время столкнулся с некоторыми неудобствами, особенно
> при добавлении данных в гриде
я так работаю - проблем нет. может ты забыл у Field.Required = false;
stud (2003-07-30 10:14:00) [22]
set generator to значение
stud (2003-07-30 10:13:00) [23]
Соловьев
а на null зачем проверять?
Smashich (2003-07-30 10:12:00) [24]
а занчение генератора не может быть установленно на меньшее чем наибольший ид в таблице?
stud (2003-07-30 10:12:00) [25]
а на дубликаты id проверял? может ты пытаешся добавить существующий id?
просмотри id в таблице и проверь текущее значение генератора
Соловьев (2003-07-30 10:11:00) [26]CREATE TRIGGER "TRG_TABLE1" FOR "TABLE1"
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
IF (NEW.ID IS NULL) THEN
( Table1_GEN,1)CREATE TRIGGER "TRG_TABLE1" FOR "TABLE1"
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
IF (NEW.ID IS NULL) THEN
NEW.ID = GEN_ID(Table1_GEN,1);
END
sashag (2003-07-30 10:09:00) [27]
Текст триггера
CREATE TRIGGER"TRG_TABLE1" FOR"TABLE1"
ACTIVE BEFORE INSERT POSITION 0
AS BEGINNEW.ID= GEN_ID(Table1_GEN, 1);
END
Генератор включен.
Запрос делаю с помощью TIBQuery, ... попробовал через ISQL - тот же результат.
Отключил триггер, вставляю запись так, как советовал stud - та же ошибка
stud (2003-07-30 10:05:00) [28]
ну это смотря какой запрос. просто используя тригеры я в свое время столкнулся с некоторыми неудобствами, особенно при добавлении данных в гриде.
если он выполняет запрос
"insert into table1 (name) values "aaa"", то чем сложнее
"insert into table1 (id,name) values (gen_id(имя_генератора,1),"aaa")
но отпадает головная боль по поводу почему где-то что-то не работает
Соловьев (2003-07-30 10:01:00) [29]
> если вставка через запрос, зачем еще тригеры плодить?
инетересно , а почему ты решил, что при использовании запросов триггеры не нужны? это никак не связано. кстати, а когда запросы не участвуют при работе с БД?
Соловьев (2003-07-30 09:57:00) [30]
> sashag © (30.07.03 09:45
покажи текст триггера. а генератор включен?
stud (2003-07-30 09:57:00) [31]
если вставка через запрос, зачем еще тригеры плодить?
Sergey13 (2003-07-30 09:55:00) [32]
А с генератором никто ничего не делал? И тело тригера посмотреть бы. И откуда запрос идет из твоей программы или какого либо ИБЭксперта?
sashag (2003-07-30 09:45:00) [33]
-> Соловьев
Триггер на событие BEFORE INSERT
Соловьев (2003-07-30 09:42:00) [34]
> Поле id - автоинкрементное (триггер со счетчиком)
на какое событие?
stud (2003-07-30 09:41:00) [35]
сделай так:
"insert into table1 (id,name) values (gen_id(имя_генератора,1),"aaa")
а тригер отключи