В общем, получается что-то вроде этого
Код:
/*****************************************************
База данных программы Nikonov
по заказу Никонова
******************************************************/
SET AUTODDL ON;
SET ECHO ON;
OUTPUT isql.txt;
CONNECT 'test.fdb'
USER 'sysdba' PASSWORD 'masterkey';
DROP DATABASE;
COMMIT;
SET NAMES WIN1251;
SET SQL DIALECT 3;
CREATE DATABASE 'test.fdb'
USER 'sysdba' PASSWORD 'masterkey'
DEFAULT CHARACTER SET WIN1251;
COMMIT;
CONNECT 'test.fdb'
USER 'sysdba' PASSWORD 'masterkey';
/***************************************************
Список операторов
****************************************************/
CREATE TABLE Nakladn (
NN INTEGER NOT NULL, /*первичный ключ*/
NumNakladn INTEGER NOT NULL UNIQUE, /* номер накладной */
Fam VARCHAR(20) NOT NULL, /* фамилия */
Doljn VARCHAR(20), /* должность */
PRIMARY KEY(NN)
);
CREATE GENERATOR Nakladn_NN_GEN;
SET GENERATOR Nakladn_NN_GEN TO 0;
CREATE GENERATOR Nakladn_Num_GEN;
SET GENERATOR Nakladn_Num_GEN TO 0;
SET TERM !;
/**********************************************
Процедуры и функции
***********************************************/
/**********************************************
Генераторы первичных ключей
***********************************************/
CREATE TRIGGER Nakladn_trig FOR Nakladn
ACTIVE BEFORE INSERT
AS
BEGIN
NEW.NN=GEN_ID(Nakladn_NN_GEN,1);
END!
CREATE TRIGGER Nakladn_Num_trig FOR Nakladn
ACTIVE AFTER INSERT
AS
BEGIN
UPDATE Nakladn
SET
NumNakladn=GEN_ID(Nakladn_Num_GEN,1)
WHERE (NN=NEW.NN);
END!
/***********************************************
Начальная инициализация
************************************************/
SET TERM ;!
COMMIT;