powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / Ошибка "Column does not belong to referenced table" при добавлении триггера
6 сообщений из 6, страница 1 из 1
Ошибка "Column does not belong to referenced table" при добавлении триггера
    #39543879
xamelione25
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
(Firebird/ibexpert)

Добавить в сценарий операторы создания генераторов, исключений и триггеров. Для каждого суррогатного первичного ключа должен быть создан соответствующий генератор и триггер.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
253.
254.
255.
256.
257.
258.
259.
260.
261.
262.
263.
264.
265.
266.
267.
268.
269.
270.
271.
272.
273.
274.
275.
276.
277.
278.
279.
/******************************************************************************/
/***         Generated by IBExpert 2017.10.11.1 29.10.2017 2:40:48          ***/
/******************************************************************************/

SET SQL DIALECT 3;

SET NAMES WIN1251;

SET CLIENTLIB 'C:\Program Files\Firebird\Firebird_2_5\WOW64\fbclient.dll';

CREATE DATABASE 'C:\Users\annas\Desktop\Вуз\Бакалавриат З\Дисциплины\Управление данными\Лабараторные\Лабараторная 5\П5.FDB'
USER 'SYSDBA' PASSWORD 'masterkey'
PAGE_SIZE 16384
DEFAULT CHARACTER SET WIN1251 COLLATION WIN1251;



/******************************************************************************/
/***                                Domains                                 ***/
/******************************************************************************/

CREATE DOMAIN B AS
NUMERIC(10,10)
NOT NULL;

CREATE DOMAIN ESKIZ AS
BLOB SUB_TYPE 0 SEGMENT SIZE 80
NOT NULL;

CREATE DOMAIN ESKIZ1 AS
BLOB SUB_TYPE 0 SEGMENT SIZE 80
NOT NULL;

CREATE DOMAIN GPT AS
SMALLINT
NOT NULL;

CREATE DOMAIN HEL AS
NUMERIC(10,10)
NOT NULL;

CREATE DOMAIN HOP AS
NUMERIC(10,10)
NOT NULL;

CREATE DOMAIN HRABOCHAYA AS
NUMERIC(10,10)
NOT NULL;

CREATE DOMAIN HZAPAS AS
NUMERIC(10,10)
NOT NULL;

CREATE DOMAIN K AS
SMALLINT
NOT NULL;

CREATE DOMAIN K1 AS
SMALLINT
NOT NULL;

CREATE DOMAIN KO AS
NUMERIC(10,10)
NOT NULL;

CREATE DOMAIN L AS
NUMERIC(10,10)
NOT NULL;

CREATE DOMAIN M1 AS
NUMERIC(10,10)
NOT NULL;

CREATE DOMAIN MARKA AS
VARCHAR(30)
NOT NULL;

CREATE DOMAIN MARKA1 AS
VARCHAR(30)
NOT NULL;

CREATE DOMAIN MATERIAL AS
VARCHAR(30)
NOT NULL;

CREATE DOMAIN MM AS
SMALLINT
NOT NULL;

CREATE DOMAIN MPR AS
VARCHAR(30)
NOT NULL;

CREATE DOMAIN MSTR AS
NUMERIC(10,10)
NOT NULL;

CREATE DOMAIN MV AS
SMALLINT
NOT NULL;

CREATE DOMAIN N1 AS
SMALLINT
NOT NULL;

CREATE DOMAIN N2 AS
INTEGER
NOT NULL;

CREATE DOMAIN NAIMENOVANIE AS
VARCHAR(30)
NOT NULL;

CREATE DOMAIN NE AS
INTEGER
NOT NULL;

CREATE DOMAIN NRAB AS
SMALLINT
NOT NULL;

CREATE DOMAIN OM AS
NUMERIC(10,10)
NOT NULL;

CREATE DOMAIN SO AS
NUMERIC(10,10)
NOT NULL;

CREATE DOMAIN SOE AS
NUMERIC(10,10)
NOT NULL;

CREATE DOMAIN SS AS
NUMERIC(10,10)
NOT NULL;

CREATE DOMAIN T AS
NUMERIC(10,10)
NOT NULL;

CREATE DOMAIN VR AS
SMALLINT
NOT NULL;

CREATE DOMAIN VS AS
SMALLINT
NOT NULL;

CREATE DOMAIN VU AS
SMALLINT
NOT NULL;



/******************************************************************************/
/***                               Generators                               ***/
/******************************************************************************/

CREATE GENERATOR "KONSTRUKCIYA_NOMER";
SET GENERATOR "KONSTRUKCIYA_NOMER" TO 100;

CREATE GENERATOR "OSNASKA_NOMER";
SET GENERATOR "OSNASKA_NOMER" TO 101;



/******************************************************************************/
/***                                 Tables                                 ***/
/******************************************************************************/



CREATE TABLE "SPECIPIKACIYA MONTAGNIH EL" (
    NOMER                    N1,
    "NAZVANIE KONSRUKCII"    NAIMENOVANIE,
    "MARKIROVKA KONSRUKCII"  MARKA,
    "MASSA KONSTRUKCII"      M1,
    KOLICHESTVO              K,
    "OBSHAYA MASSA"          OM,
    "ESKIZ KONSTRUKCII"      ESKIZ,
    DLINA                    L,
    SHIRINA                  B,
    TOLHINA                  T,
    "MATERIAL KONSTRUKCII"   MATERIAL
);


CREATE TABLE "VEDOMOST GRUZOZAHVATNYKH USTR" (
    NOMER1                        N2,
    "MARKIROVKA KONSRUKCII"       MARKA,
    "MARKIROVKA OSNASKI"          MARKA1,
    "ESKIZ OSNASKI"               ESKIZ1,
    GRUZOPODEMNOST                GPT,
    "MASSA STROPOV"               MSTR,
    "MASSA MONTAZHNYKH PRIBOROV"  MPR,
    KOLICHESTVO                   K1,
    "VREMYA STROPOVKI"            VS,
    "VREMYA USTANOVKI"            VU,
    VREMYARASCTROPOVKI            VR
);


CREATE TABLE "VEDOMOST MONT HARAKTERISTIK" (
    NOMER                         N1,
    "MASSA KONSTRUKCII"           M1,
    "MASSA STROPOV"               MSTR,
    "MASSA MONTAZHNYKH PRIBOROV"  MPR,
    "OBHAYA MASSA"                MM,
    "VYSOTA OPORY"                HOP,
    "ZAPAS PO VYSOTE"             HZAPAS,
    "VYSOTA ELEMENTA"             HEL,
    "VYSOTA STROPOVKI"            VS,
    "MONTAZHNAYA VYSOTA"          MV,
    "KOLICHESTVO RABOCHIH"        NRAB
);




/******************************************************************************/
/***                           Unique constraints                           ***/
/******************************************************************************/

ALTER TABLE "SPECIPIKACIYA MONTAGNIH EL" ADD CONSTRAINT PK_SPECIPIKACIYAMONTAGNIHEL UNIQUE ("NAZVANIE KONSRUKCII");
ALTER TABLE "SPECIPIKACIYA MONTAGNIH EL" ADD CONSTRAINT PK_SPECIPIKACIYAMONTAGNIHEL1 UNIQUE ("MARKIROVKA KONSRUKCII");
ALTER TABLE "SPECIPIKACIYA MONTAGNIH EL" ADD CONSTRAINT PK_SPECIPIKACIYAMONTAGNIHEL2 UNIQUE ("MASSA KONSTRUKCII");
ALTER TABLE "VEDOMOST GRUZOZAHVATNYKH USTR" ADD CONSTRAINT PK_VEDOMOSTMONTHARAKTERIS UNIQUE ("MASSA STROPOV");
ALTER TABLE "VEDOMOST GRUZOZAHVATNYKH USTR" ADD CONSTRAINT PK_VEDOMOSTMONTHARAKTERIS1 UNIQUE ("MASSA MONTAZHNYKH PRIBOROV");


/******************************************************************************/
/***                              Primary keys                              ***/
/******************************************************************************/

ALTER TABLE "SPECIPIKACIYA MONTAGNIH EL" ADD CONSTRAINT PK_SPECIPIKACIYAMONTAGNIHEL0 PRIMARY KEY (NOMER);
ALTER TABLE "VEDOMOST GRUZOZAHVATNYKH USTR" ADD CONSTRAINT PK_VEDOMOSTMONTAGNIHUSTR PRIMARY KEY (NOMER1);


/******************************************************************************/
/***                              Foreign keys                              ***/
/******************************************************************************/

ALTER TABLE "VEDOMOST GRUZOZAHVATNYKH USTR" ADD CONSTRAINT FK_VEDOMOST_MONT_HARAKTERISTIK4 FOREIGN KEY ("MARKIROVKA KONSRUKCII") REFERENCES "SPECIPIKACIYA MONTAGNIH EL" ("MARKIROVKA KONSRUKCII") ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE "VEDOMOST MONT HARAKTERISTIK" ADD CONSTRAINT FK_VEDOMOST_MONT_HARAKTERISTIK FOREIGN KEY (NOMER) REFERENCES "SPECIPIKACIYA MONTAGNIH EL" (NOMER) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE "VEDOMOST MONT HARAKTERISTIK" ADD CONSTRAINT FK_VEDOMOST_MONT_HARAKTERISTIK1 FOREIGN KEY ("MASSA KONSTRUKCII") REFERENCES "SPECIPIKACIYA MONTAGNIH EL" ("MASSA KONSTRUKCII") ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE "VEDOMOST MONT HARAKTERISTIK" ADD CONSTRAINT FK_VEDOMOST_MONT_HARAKTERISTIK2 FOREIGN KEY ("MASSA STROPOV") REFERENCES "VEDOMOST GRUZOZAHVATNYKH USTR" ("MASSA STROPOV") ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE "VEDOMOST MONT HARAKTERISTIK" ADD CONSTRAINT FK_VEDOMOST_MONT_HARAKTERISTIK3 FOREIGN KEY ("MASSA MONTAZHNYKH PRIBOROV") REFERENCES "VEDOMOST GRUZOZAHVATNYKH USTR" ("MASSA MONTAZHNYKH PRIBOROV") ON DELETE CASCADE ON UPDATE CASCADE;


/******************************************************************************/
/***                                Indices                                 ***/
/******************************************************************************/

CREATE INDEX IDDLINAW ON "SPECIPIKACIYA MONTAGNIH EL" (DLINA);
CREATE INDEX IDKOLICHESTVOW ON "SPECIPIKACIYA MONTAGNIH EL" (KOLICHESTVO);
CREATE INDEX IDMARKIROVKAKONSRUKCIIW ON "SPECIPIKACIYA MONTAGNIH EL" ("MARKIROVKA KONSRUKCII");
CREATE INDEX IDMASSAKONSTRUKCIIW ON "SPECIPIKACIYA MONTAGNIH EL" ("MASSA KONSTRUKCII");
CREATE INDEX IDNAZVANIEKONSRUKCIIW ON "SPECIPIKACIYA MONTAGNIH EL" ("NAZVANIE KONSRUKCII");
CREATE INDEX IDNOMERW ON "SPECIPIKACIYA MONTAGNIH EL" (NOMER);
CREATE INDEX IDOBSHAYAMASSAW ON "SPECIPIKACIYA MONTAGNIH EL" ("OBSHAYA MASSA");
CREATE INDEX IDSHIRINAW ON "SPECIPIKACIYA MONTAGNIH EL" (SHIRINA);
CREATE INDEX IDTOLHINAW ON "SPECIPIKACIYA MONTAGNIH EL" (TOLHINA);
CREATE INDEX IMATERIALKONSTRUKCIIW ON "SPECIPIKACIYA MONTAGNIH EL" ("MATERIAL KONSTRUKCII");
CREATE INDEX IDGRUZOPODEMNOSTW ON "VEDOMOST GRUZOZAHVATNYKH USTR" (GRUZOPODEMNOST);
CREATE INDEX IDKOLICHESTVOW1 ON "VEDOMOST GRUZOZAHVATNYKH USTR" (KOLICHESTVO);
CREATE INDEX IDMARKIRIVKAOSNASKIW ON "VEDOMOST GRUZOZAHVATNYKH USTR" ("MARKIROVKA OSNASKI");
CREATE INDEX IDMASSAMONTAZHNYKHPRIBOROVW ON "VEDOMOST GRUZOZAHVATNYKH USTR" ("MASSA MONTAZHNYKH PRIBOROV");
CREATE INDEX IDMASSASTROPOVW ON "VEDOMOST GRUZOZAHVATNYKH USTR" ("MASSA STROPOV");
CREATE INDEX IDNOMER1W ON "VEDOMOST GRUZOZAHVATNYKH USTR" (NOMER1);
CREATE INDEX IDVREMYASTROPOVKIW ON "VEDOMOST GRUZOZAHVATNYKH USTR" ("VREMYA STROPOVKI");
CREATE INDEX IDVREMYAUSTANOVKIW ON "VEDOMOST GRUZOZAHVATNYKH USTR" ("VREMYA USTANOVKI");
CREATE INDEX IDKOLICHESTVORABOCHIHVZVENEW ON "VEDOMOST MONT HARAKTERISTIK" ("KOLICHESTVO RABOCHIH");
CREATE INDEX IDMONTAZHNAYAVYSOTAW ON "VEDOMOST MONT HARAKTERISTIK" ("MONTAZHNAYA VYSOTA");
CREATE INDEX IDOBHAYAMASSAW ON "VEDOMOST MONT HARAKTERISTIK" ("OBHAYA MASSA");
CREATE INDEX IDVYSOTAELEMENTAW ON "VEDOMOST MONT HARAKTERISTIK" ("VYSOTA ELEMENTA");
CREATE INDEX IDVYSOTAOPORYW ON "VEDOMOST MONT HARAKTERISTIK" ("VYSOTA OPORY");
CREATE INDEX IDVYSOTASTROPOVKIW ON "VEDOMOST MONT HARAKTERISTIK" ("VYSOTA STROPOVKI");
CREATE INDEX IDZAPASPOVYSOTEW ON "VEDOMOST MONT HARAKTERISTIK" ("ZAPAS PO VYSOTE");



Я добавляю сначала генератор (см. в коде выше), а потом триггер который должен будет обеспечивать нумерацию в полях номеров (см. скрин).

При добавлении и компилировании генератора все прошло нормально. Но когда пытаюсь откомпилировать триггер:

Код: sql
1.
2.
3.
4.
5.
6.
7.
CREATE OR ALTER TRIGGER TR_NOMER_KONSTR FOR "SPECIPIKACIYA MONTAGNIH EL"
active BEFORE INSERT POSITION 0
AS
BEGIN
 IF ("SPECIPIKACIYA MONTAGNIH EL".nomer IS NULL) THEN
 "SPECIPIKACIYA MONTAGNIH EL".nomer = gen_id(KONSTRUKCIYA_NOMER,1);
END



выдает ошибку.....
Column does not belong to referenced table.
Dynamic SQL Error.
SQL error code = -206.
Column unknown.
SPECIPIKACIYA MONTAGNIH EL.NOMER.
At line 5, column 35.


КАК ИСПРАВИТЬ???
...
Рейтинг: 0 / 0
Ошибка "Column does not belong to referenced table" при добавлении триггера
    #39543881
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plsql
1.
2.
3.
4.
5.
6.
7.
CREATE OR ALTER TRIGGER TR_NOMER_KONSTR FOR "SPECIPIKACIYA MONTAGNIH EL"
active BEFORE INSERT POSITION 0
AS
BEGIN
 IF (NEW.nomer IS NULL) THEN
   NEW.nomer = gen_id(KONSTRUKCIYA_NOMER,1);
END
...
Рейтинг: 0 / 0
Ошибка "Column does not belong to referenced table" при добавлении триггера
    #39543882
xamelione25
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IBExpert,

Спасибо огромное
...
Рейтинг: 0 / 0
Ошибка "Column does not belong to referenced table" при добавлении триггера
    #39543887
xamelione25
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IBExpert,

Только у меня ibexper опять че-то козни строит (см скрин)
...
Рейтинг: 0 / 0
Ошибка "Column does not belong to referenced table" при добавлении триггера
    #39543888
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хватит уже форум скриншотами засирать. "Лабараторные" делаю за деньги.
...
Рейтинг: 0 / 0
Ошибка "Column does not belong to referenced table" при добавлении триггера
    #39543905
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выкинуть нах квотированные идентификаторы и жисть наладится.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / Ошибка "Column does not belong to referenced table" при добавлении триггера
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]