powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Вопрос про проверку наличия ссылки по FK на значение индексированного поля
25 сообщений из 26, страница 1 из 2
Вопрос про проверку наличия ссылки по FK на значение индексированного поля
    #39388540
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно ли как-то в триггере "до обновления" надежно проверить (с учетом всевозможных режимов и сценариев транзакций) и без изменения значения в индексированном поле с последующей ловлей исключения в WHEN при ссылающемся внешнем ключе "ON UPDATE NO ACTION", существует ли ссылка значения внешнего ключа из другой таблицы на значение в индексированном поле?

Очень не хочется для подобной проверки дергать генератор, без толку увеличивая, тем самым, его значение.
...
Рейтинг: 0 / 0
Вопрос про проверку наличия ссылки по FK на значение индексированного поля
    #39388542
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Rdb Dev!
You wrote on 20 января 2017 г. 15:42:44:

Rdb Dev> (с учетом всевозможных режимов и сценариев транзакций)переходи на M$ SQL

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Вопрос про проверку наличия ссылки по FK на значение индексированного поля
    #39388543
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий, зачем?
...
Рейтинг: 0 / 0
Вопрос про проверку наличия ссылки по FK на значение индексированного поля
    #39388578
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_devзачем?
Затем, что только там это возможно.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Вопрос про проверку наличия ссылки по FK на значение индексированного поля
    #39388600
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev,

что ты хочешь получить и причём тут генераторы ?
...
Рейтинг: 0 / 0
Вопрос про проверку наличия ссылки по FK на значение индексированного поля
    #39388816
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvlad, я же, вроде, написал что хочу получить.
Через генератор я могу, к примеру, получить некое уникальное значение для поля первичного ключа и в триггере "до обновления" изменить значение в поле первичного ключа на новое. При условии, что на это поле есть внешние ключи ON UPDATE NO ACTION, попытка изменить значение поля приведет к исключению, которое можно обработать. Это как вариант реализации.
...
Рейтинг: 0 / 0
Вопрос про проверку наличия ссылки по FK на значение индексированного поля
    #39388818
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_devhvlad, я же, вроде, написал что хочу получить.
Через генератор я могу, к примеру, получить некое уникальное значение для поля первичного ключа и в триггере "до обновления" изменить значение в поле первичного ключа на новое. При условии, что на это поле есть внешние ключи ON UPDATE NO ACTION, попытка изменить значение поля приведет к исключению, которое можно обработать. Это как вариант реализации.

А нельзя ли разбить одну длинную мысль на несколько более коротких? Непонятно ничего.
...
Рейтинг: 0 / 0
Вопрос про проверку наличия ссылки по FK на значение индексированного поля
    #39388820
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чччДА нельзя ли разбить одну длинную мысль на несколько более коротких? Непонятно ничего.Ok. попробую объяснить "на пальцах" и абстрактно, чтобы не отвлекать мысль на постороннюю конкретику.

Допустим, имеется некий тип и у этого типа есть атрибуты. Также имеется экземпляр типа и значения атрибутов для экземпляра этого типа. Очевидно, что таблица значений атрибутов имеет два FK - на таблицу атрибутов и на таблицу экземпляров. В свою очередь, таблицы атрибутов и экземпляров имеют FK на таблицу типов.
Теперь представим случай, когда кто-то меняет привязку атрибута от одного типа к другому и нам необходимо в триггере "до обновления" определить этот момент, чтобы предотвратить изменение выдачей исключения, если у атрибута уже есть значение, так как значение имеет FK не только на атрибут, но и на тип, уже не совпадающий с типом, к которому привязан атрибут. Несовпадение типа принадлежности атрибута и типа принадлежности экземпляра для одного и того же значения приводит к противоречивости данных.
...
Рейтинг: 0 / 0
Вопрос про проверку наличия ссылки по FK на значение индексированного поля
    #39388871
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_devтаблица значений атрибутов имеет два FK - на таблицу атрибутовИ этот FK - не влючает в себя ID типа ?
...
Рейтинг: 0 / 0
Вопрос про проверку наличия ссылки по FK на значение индексированного поля
    #39389079
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvlad, предлагаешь тащить в таблицу значений идентификатор типа? Можно, конечно... но хотелось бы обойтись без этого.
...
Рейтинг: 0 / 0
Вопрос про проверку наличия ссылки по FK на значение индексированного поля
    #39389299
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev,

Те, кто уже решал такую задачу, решили всё-таки идентификатор типа таскать везде за собой.
...
Рейтинг: 0 / 0
Вопрос про проверку наличия ссылки по FK на значение индексированного поля
    #39389309
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WildSery, понятно, спасибо! Это также оптимальное решение, если требуется ON UPDATE CASCADE.
...
Рейтинг: 0 / 0
Вопрос про проверку наличия ссылки по FK на значение индексированного поля
    #39389329
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WildSery, малость прикинул и решил, что "оптимальности" не получается, так как для "таблицы значений" придется делать два FK, включающих поле типа и при каскадном изменении поля типа по одной из "веток" всегда буду получать исключение по ограничению второго FK. :(
...
Рейтинг: 0 / 0
Вопрос про проверку наличия ссылки по FK на значение индексированного поля
    #39389338
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev,

что-то я плохо понимаю о чём ты. Выложи предполагаемый DDL таблиц. И что ты там контролировать собрался
...
Рейтинг: 0 / 0
Вопрос про проверку наличия ссылки по FK на значение индексированного поля
    #39389352
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не обязательно навешивать туда FK ещё один, я с точки зрения целостности "ссылки" рассуждал. Значение содержит и тип, и атрибут, что логично.

Не совсем ясно, зачем отслеживать перевешивание атрибута, "есть ли уже значения атрибута для этого типа".
Почему нельзя просто запретить изменение типа для атрибута?
Ты хочешь создать атрибут "для какого-то типа", а потом его уже цеплять куда следует? В этом смысл?
...
Рейтинг: 0 / 0
Вопрос про проверку наличия ссылки по FK на значение индексированного поля
    #39389363
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис, в соответствии с условным описанием и предложенным вариантом, это выглядит примерно так:
пардон муа за квотирование идентификаторов
Код: plsql
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.
/*
 * Типы объектов
 */
CREATE TABLE "obj_types"
(
    "id"   ID NOT NULL,
    "name" NAME NOT NULL,
  CONSTRAINT "obj_types__pk" PRIMARY KEY ("id"),
  CONSTRAINT "obj_types__uq" UNIQUE ("name")
);

/*
 * Атрибуты типа объекта
 */
CREATE TABLE "type_attrs"
(
    "type_id" ID NOT NULL
    "id"      ID NOT NULL,
    "name"    NAME NOT NULL,
  CONSTRAINT "type_attrs__pk" PRIMARY KEY ("type_id", "id"),
  CONSTRAINT "type_attrs__uq" UNIQUE ("type_id", "name"),
  CONSTRAINT "type_attrs__fk__obj_types" FOREIGN KEY ("type_id")
    REFERENCES "obj_types" ("id") ON UPDATE CASCADE ON DELETE CASCADE
);

/*
 * Объекты
 */
CREATE TABLE "obj"
(
    "type_id" ID NOT NULL,
    "id"      ID NOT NULL,
    "name"    ID NOT NULL,
  CONSTRAINT "obj__pk" PRIMARY KEY ("type_id", "id"),
  CONSTRAINT "obj__uq" UNIQUE ("type_id", "name"),
  CONSTRAINT "obj__fk__obj_types" FOREIGN KEY ("type_id")
    REFERENCES "obj_types" ("id") ON UPDATE CASCADE ON DELETE CASCADE
);

/*
 * Значения атрибутов объектов
 */
CREATE TABLE "obj_value"
(
    "type_id" ID NOT NULL,
    "attr_id" ID NOT NULL,
    "obj_id"  ID NOT NULL,
    "id"      ID NOT NULL,
    "value"   DOUBLE PRECISION DEFAULT NULL,
  CONSTRAINT "obj_value__pk" PRIMARY KEY ("id"),
  CONSTRAINT "obj_value__fk__type_attrs" FOREIGN KEY ("type_id", "attr_id")
    REFERENCES "type_attrs" ("type_id", "id") ON UPDATE CASCADE ON DELETE CASCADE,
  CONSTRAINT "obj_value__fk__obj" FOREIGN KEY ("type_id", "obj_id")
    REFERENCES "obj" ("type_id", "id") ON UPDATE CASCADE ON DELETE CASCADE
);


При изменении "type_id" в таблице "type_attrs" или "obj" я всегда буду получать исключение по ограничению целостности "obj_value__fk__type_attrs" или "obj_value__fk__obj", если в таблице "obj_value" находится соответствующая запись.
...
Рейтинг: 0 / 0
Вопрос про проверку наличия ссылки по FK на значение индексированного поля
    #39389367
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В таблице "obj" опечатался с типом поля "name".
...
Рейтинг: 0 / 0
Вопрос про проверку наличия ссылки по FK на значение индексированного поля
    #39389525
KreatorXXI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev,

По-моему, таблицы составлены правильно. Только мне не понятно - зачем разрешать изменение в таблице "type_attr" поля "type_id"?
У Вас атрибуты привязаны к объекту. Как атрибутов можно перевязать к другому? Нет, теоретически, через запрос можно, конечно. А как интерфейсно?
На экране есть список объектов и рядом список его атрибутов. Зачем позволять атрибутам менять объект? Непонятно. Наверно, можно только добавлять или удалять. Вот при удалении должен работать форейн ключ.
...
Рейтинг: 0 / 0
Вопрос про проверку наличия ссылки по FK на значение индексированного поля
    #39389607
Фотография Di_LIne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KreatorXXIЗачем позволять атрибутам менять объект?
Атрибут "длинна", объект №1 = пиписька, объект №2 = ЗП.

Правда rdb_dev не вкуривает, что длинна пиписьки не равно длинна ЗП.
И пофигу, что буковки в названии атрибута одинаковые.
Физический смысл - разный.
...
Рейтинг: 0 / 0
Вопрос про проверку наличия ссылки по FK на значение индексированного поля
    #39389614
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня еще одна идейка оформилась, которую набросал, но еще не проверял. Не буду сейчас расписывать всевозможные варианты того, как я собираюсь "это" использовать (на описание уйдет немало времени), просто гляньте, плз, кому не влом.
Выглядит, конечно, пахабно, но тем не менее...
Код: plsql
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.
/*
 * Типы объектов
 */
CREATE TABLE "obj_types"
(
    "id"   ID NOT NULL,
    "name" NAME NOT NULL,
  CONSTRAINT "obj_types__pk" PRIMARY KEY ("id"),
  CONSTRAINT "obj_types__uq" UNIQUE ("name")
);

/*
 * Атрибуты типа объекта
 */
CREATE TABLE "type_attrs"
(
    "type_id" ID NOT NULL
    "id"      ID NOT NULL,
    "name"    NAME NOT NULL,
  CONSTRAINT "type_attrs__pk" PRIMARY KEY ("id"),
  CONSTRAINT "type_attrs__uq" UNIQUE ("type_id", "name"),
  CONSTRAINT "type_attrs__fk__obj_types" FOREIGN KEY ("type_id")
    REFERENCES "obj_types" ("id") ON UPDATE CASCADE ON DELETE CASCADE
);

REVOKE ALL ON TABLE "type_attrs" FROM ROLE USERS;

CREATE GENERATOR "type_attrs__GEN";

SET TERM ^;
CREATE OR ALTER TRIGGER "type_attrs__TR_BIU"
  FOR "type_attrs"
  ACTIVE
  BEFORE INSERT OR UPDATE
  POSITION 0
AS
BEGIN
  IF (NOT(NEW."id" IS NOT NULL
          AND NEW."id" <= GEN_ID("type_attrs__GEN", 0)
      ) THEN
    NEW."id" = GEN_ID("type_attrs__GEN", 1);
END^
SET TERM ;^


CREATE OR ALTER EXCEPTION "attr_value__xRowExists"
  'Существует ссылка внешнего ключа';

SET TERM ^;
CREATE OR ALTER PROCEDURE "type_attrs__set"
  (
    "oldId"   ID DEFAULT NULL,
    "typeId"  ID DEFAULT NULL,
    "name"    NAME DEFAULT NULL
  )
  RETURNS
  (
    "id" ID,
    "x"  BOOL
  )
AS
  DECLARE VARIABLE typeId ID DEFAULT NULL;
BEGIN
  IF (:"oldId" IS NULL) THEN
    BEGIN
      IF (:"typeId" IS NOT NULL AND :"name" IS NOT NULL) THEN
        INSERT INTO "type_attrs" ("type_id", "name")
          VALUES (:"typeId", :"name")
          RETURNING "id" INTO: "id";
    END
  ELSE
    IF (:"typeId" IS NOT NULL AND :"name" IS NOT NULL) THEN
      BEGIN
        SELECT "type_id", "id"
          FROM "type_attrs"
          WHERE "id" = :"oldId"
          FOR UPDATE WITH LOCK
          INTO: typeId, "id";
        IF (:"id" IS NULL) THEN EXIT;
        -- Для записей в "obj" и "type_attrs"
        -- блокируем общую запись в "obj_types"
        -- для предотвращения изменения соответствующих записей из других
        -- транзакций в таблицах "type_attr" и "attr_value"
        SELECT "id"
          FROM "obj_types"
          WHERE "id" = :typeId
          FOR UPDATE WITH LOCK;
          INTO: typeId
        SAVEPOINT "type_attrs__set__SVPNT";
        BEGIN
          "x" = 'N';
          -- определяем наличие реферального FK
          UPDATE "type_attrs"
            SET "id" = NULL
            WHERE "id" = :"oldId";
          WHEN EXCEPTION "attr_value__xRowExists" DO
            "x" = 'Y';
        END
        ROLLBACK TO SAVEPOINT "type_attrs__set__SVPNT";
        RELEASE SAVEPOINT "type_attrs__set__SVPNT";
        UPDATE "type_attrs"
          SET "type_id" = :"typeId",
            "name" = :"name"
          WHERE "id" = :"oldId"
          RETURNING "id" INTO: "id";
      END
    ELSE
      DELETE FROM "type_attrs"
        WHERE "id" = :"oldId";
  SUSPEND;
END^
SET TERM ;^

GRANT ALL ON TABLE "type_attr" TO PROCEDURE "type_attr__set";
GRANT EXECUTE ON PROCEDURE "type_attr__set" TO ROLE USERS;

/*
 * Объекты
 */
CREATE TABLE "obj"
(
    "type_id" ID NOT NULL,
    "id"      ID NOT NULL,
    "name"    NAME NOT NULL,
  CONSTRAINT "obj__pk" PRIMARY KEY ("id"),
  CONSTRAINT "obj__uq" UNIQUE ("name"),
  CONSTRAINT "obj__fk__obj_types" FOREIGN KEY ("type_id")
    REFERENCES "obj_types" ("id") ON UPDATE CASCADE ON DELETE CASCADE
);

REVOKE ALL ON TABLE "obj" FROM ROLE USERS;

CREATE GENERATOR "obj__GEN";

SET TERM ^;
CREATE OR ALTER TRIGGER "obj__TR_BIU"
  FOR "obj"
  ACTIVE
  BEFORE INSERT OR UPDATE
  POSITION 0
AS
BEGIN
  IF (NOT(NEW."id" IS NOT NULL
          AND NEW."id" <= GEN_ID("obj__GEN", 0)
      ) THEN
    NEW."id" = GEN_ID("obj__GEN", 1);
END^
SET TERM ;^


SET TERM ^;
CREATE OR ALTER PROCEDURE "obj__set"
  (
    "oldId"   ID DEFAULT NULL,
    "typeId"  ID DEFAULT NULL,
    "name"    NAME DEFAULT NULL
  )
  RETURNS
  (
    "id" ID,
    "x"  BOOL
  )
AS
  DECLARE VARIABLE typeId ID DEFAULT NULL;
BEGIN
  IF (:"oldId" IS NULL) THEN
    BEGIN
      IF (:"typeId" IS NOT NULL AND :"name" IS NOT NULL) THEN
        INSERT INTO "obj" ("type_id", "name")
          VALUES (:"typeId", :"name")
          RETURNING "id" INTO: "id";
    END
  ELSE
    IF (:"typeId" IS NOT NULL AND :"name" IS NOT NULL) THEN
      BEGIN
        SELECT "type_id", "id"
          FROM "obj"
          WHERE "id" = :"oldId"
          FOR UPDATE WITH LOCK
          INTO: typeId, "id";
        IF (:"id" IS NULL) THEN EXIT;
        -- Для записей в "obj" и "type_attrs"
        -- блокируем общую запись в "obj_types"
        -- для предотвращения изменения соответствующих записей из других
        -- транзакций в таблицах "type_attr" и "attr_value"
        SELECT "id"
          FROM "obj_types"
          WHERE "id" = :typeId
          FOR UPDATE WITH LOCK;
          INTO: typeId
        SAVEPOINT "obj__set__SVPNT";
        BEGIN
          "x" = 'N';
          -- определяем наличие реферального FK
          UPDATE "obj"
            SET "id" = NULL
            WHERE "id" = :"oldId";
          WHEN EXCEPTION "attr_value__xRowExists" DO
            "x" = 'Y';
        END
        ROLLBACK TO SAVEPOINT "obj__set__SVPNT";
        RELEASE SAVEPOINT "obj__set__SVPNT";
        UPDATE "obj"
          SET "type_id" = :"typeId",
            "name" = :"name"
          WHERE "id" = :"oldId"
          RETURNING "id" INTO: "id";
      END
    ELSE
      DELETE FROM "obj"
        WHERE "id" = :"oldId";
  SUSPEND;
END^
SET TERM ;^

GRANT ALL ON TABLE "obj" TO PROCEDURE "obj__set";
GRANT EXECUTE ON PROCEDURE "obj__set" TO ROLE USERS;


/*
 * Значения атрибутов объектов
 */
CREATE TABLE "attr_value"
(
    "attr_id" ID NOT NULL,
    "obj_id"  ID NOT NULL,
    "id"      ID NOT NULL,
    "value"   DOUBLE PRECISION DEFAULT NULL,
  CONSTRAINT "attr_value__pk" PRIMARY KEY ("id"),
  CONSTRAINT "attr_value__fk__type_attrs" FOREIGN KEY ("attr_id")
    REFERENCES "type_attrs" ("id") ON UPDATE CASCADE ON DELETE CASCADE,
  CONSTRAINT "attr_value__fk__obj" FOREIGN KEY ("obj_id")
    REFERENCES "obj" ("id") ON UPDATE CASCADE ON DELETE CASCADE
);

SET TERM ^;
CREATE OR ALTER TRIGGER "attr_value__TR_BU"
AS
BEGIN
  IF (NEW."attr_id" IS NULL) THEN
    EXCEPTION "attr_value__xRowExists";
END^
SET TERM ;^

Интересует ваше мнение по поводу данной реализации - чем такой вариант чреват и что я не учел?
...
Рейтинг: 0 / 0
Вопрос про проверку наличия ссылки по FK на значение индексированного поля
    #39389620
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Di_LIne,

Не надо чепуху писать.
У него атрибут привязан к конкретному "типу" (читай - набору атрибутов), и длину твоей ЗП посчитают отдельно.
...
Рейтинг: 0 / 0
Вопрос про проверку наличия ссылки по FK на значение индексированного поля
    #39389622
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev,

Читать пока лень, ведь ты так и не ответил, почему в твоей конструкции вообще возможно менять тип атрибута.
...
Рейтинг: 0 / 0
Вопрос про проверку наличия ссылки по FK на значение индексированного поля
    #39389624
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev, результат "x" процедур "type_attrs__set" и "obj__set" предполагается, должен показывать наличие/отсутствие реферальных значений внешних ключей и позволять использующему его алгоритму клиента или другой ХП принимать дальнейшие решения на основании полученных данных.
...
Рейтинг: 0 / 0
Вопрос про проверку наличия ссылки по FK на значение индексированного поля
    #39389626
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WildSery, очень долго расписывать что да как... Постараюсь набросать пару вариантов, когда доберусь до дома и если не забуду.
...
Рейтинг: 0 / 0
Вопрос про проверку наличия ссылки по FK на значение индексированного поля
    #39389636
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WildSeryведь ты так и не ответил, почему в твоей конструкции вообще возможно менять тип атрибута.Уточнение - тип объекта атрибута.
...
Рейтинг: 0 / 0
25 сообщений из 26, страница 1 из 2
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Вопрос про проверку наличия ссылки по FK на значение индексированного поля
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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