автоинкрементные поля - срочно!
Добавлено: 15 ноя 2005, 21:30
Есть таблица Lease:
CREATE DOMAIN "DNADDRS" AS CHAR(20) NOT NULL;
CREATE DOMAIN "DNDATE" AS TIMESTAMP;
CREATE DOMAIN "DNNUM" AS SMALLINT
CHECK (VALUE > 0) NOT NULL;
/* Table: LEASE, Owner: SYSDBA */
CREATE TABLE "LEASE"
(
"NLEASE" "DNNUM",
"NTN" "DNNUM",
"NON" "DNNUM",
"ADR" "DNADDRS",
"LDATE" "DNDATE",
PRIMARY KEY ("NLEASE")
);
ALTER TABLE "LEASE" ADD FOREIGN KEY ("NTN") REFERENCES TENANT ("NTN");
ALTER TABLE "LEASE" ADD FOREIGN KEY ("NON") REFERENCES OWNER ("NON");
В IBConsol создается следующий триггер:
set term^
create trigger ins_lease for lease
active before insert
as
begin
if (new.nlease is null) then
new.nlease=geN_id(num1,1);
end^
Где num1 - предварительно созданный генератор, lease - таблица, nLease - ключевое поле.
Триггер не работает!
При добавлении записи вручную в IBConsol получаем сообщение об ошибке "поле nlease не может быть пустым"
Что делать? (нужно, чтобы ключевое поле при добавлении записи заполнялось автоматически последовательными целочисленными значениями)
CREATE DOMAIN "DNADDRS" AS CHAR(20) NOT NULL;
CREATE DOMAIN "DNDATE" AS TIMESTAMP;
CREATE DOMAIN "DNNUM" AS SMALLINT
CHECK (VALUE > 0) NOT NULL;
/* Table: LEASE, Owner: SYSDBA */
CREATE TABLE "LEASE"
(
"NLEASE" "DNNUM",
"NTN" "DNNUM",
"NON" "DNNUM",
"ADR" "DNADDRS",
"LDATE" "DNDATE",
PRIMARY KEY ("NLEASE")
);
ALTER TABLE "LEASE" ADD FOREIGN KEY ("NTN") REFERENCES TENANT ("NTN");
ALTER TABLE "LEASE" ADD FOREIGN KEY ("NON") REFERENCES OWNER ("NON");
В IBConsol создается следующий триггер:
set term^
create trigger ins_lease for lease
active before insert
as
begin
if (new.nlease is null) then
new.nlease=geN_id(num1,1);
end^
Где num1 - предварительно созданный генератор, lease - таблица, nLease - ключевое поле.
Триггер не работает!
При добавлении записи вручную в IBConsol получаем сообщение об ошибке "поле nlease не может быть пустым"
Что делать? (нужно, чтобы ключевое поле при добавлении записи заполнялось автоматически последовательными целочисленными значениями)