powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Alter insert в текущую же таблицу
17 сообщений из 17, страница 1 из 1
Alter insert в текущую же таблицу
    #38977957
Kos-2010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброе время суток форумчане.

Есть таблица «Words» с полями:
Код: sql
1.
2.
3.
«id» «word»  
  1  смелый
  2  храбрый


Я создал перекрестную таблицу «Synonym», в ней заполняются 4 поля («id» «word» «words_id» «synonym_id»).
Есть «Synonym»
Код: sql
1.
2.
3.
«id» «word» «words_id» «synonym_id»
 1   смелый      1          2
 2   храбрый     2          1


Я хотел написать в «Synonym» триггер на вставку «alter insert».
Чтоб при вставки в «Synonym» первой строки (с ссылкой), автоматически в «Synonym» вставлялась вторая строка (см. выше).
Если я просто напишу в триггере запрос на вставку, пойдет цикл.
- Можно конечно в табл. «Synonym» создать еще поле, и заполнять его при вставке строки с помощью триггера, а в самом триггере проверять статус этого поля.
- Ну можно еще через приложение вставлять эту вторую строку, но хотелось бы это всетаки с помощью БД делать

Но я думаю есть легче вариант...
Или как-то можно по-другому решить эту проблему?

Заранее спасибо
P.S.
Сразу может вставляться несколько новых записей, на все, нужно подобавлять конвертированную стоку
...
Рейтинг: 0 / 0
Alter insert в текущую же таблицу
    #38977961
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kos-2010Или как-то можно по-другому решить эту проблему?
Процедуру сделай.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Alter insert в текущую же таблицу
    #38977970
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kos-2010Я создал перекрестную таблицу «Synonym», в ней заполняются 4 поля («id» «word» «words_id» «synonym_id»).Зачем
Kos-2010Или как-то можно по-другому решить эту проблему?
Код: sql
1.
WHEN -803 DO
...
Рейтинг: 0 / 0
Alter insert в текущую же таблицу
    #38977972
Kos-2010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

Хорошо,
это значит я вставляю первую строку в таблицу «Synonym», из триггера "After insert", вызываю процедуру, которая вставляет вторую строку?
Тогда как мне отработать процедурой всего один раз (на каждую строку)?

Или

процедуре просто передавать "id", а она сможет сама вставить в таблицу «Synonym» эти 2 ДВЕ строки ?
...
Рейтинг: 0 / 0
Alter insert в текущую же таблицу
    #38978039
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kos-2010,

добавь служебное поле, которое показывает, откуда идет вставка: из триггера или нет.
...
Рейтинг: 0 / 0
Alter insert в текущую же таблицу
    #38978068
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А ещё лучше - забей. Синонимичность не коммутативна. То есть если одно слово - синоним
другого, то не факт, что другое - синоним первого.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Alter insert в текущую же таблицу
    #38978090
Фотография zirra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov> То есть если одно слово - синоним другого, то не факт, что другое - синоним первого.
Оба-на!!! 8O
Пример можно?..

--
Vladimir A.Bakhvaloff
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Alter insert в текущую же таблицу
    #38978109
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zirraПример можно?..
"Козёл" - синоним "мужика". "Мужик" - не синоним "козла".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Alter insert в текущую же таблицу
    #38978110
Kos-2010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanKos-2010,

добавь служебное поле, которое показывает, откуда идет вставка: из триггера или нет.
Уже появился еще один сторонник дополнительного поля (наверное это будет проще написания процедуры)
...
Рейтинг: 0 / 0
Alter insert в текущую же таблицу
    #38978111
Фотография zirra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov> "Козёл" - синоним "мужика".
Глупость... Откровенная...

--
Vladimir A.Bakhvaloff
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Alter insert в текущую же таблицу
    #38978112
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zirraГлупость... Откровенная...
Можешь самостоятельно вспомнить любые другие понятия из охватывающих множеств или эвфемизмов.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Alter insert в текущую же таблицу
    #38978114
Фотография zirra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov> Можешь самостоятельно вспомнить любые другие понятия из охватывающих множеств или эвфемизмов.
Нет, не могу...
И, кстати, эвфемизм - далеко не то же самое, что синоним ...

--
Vladimir A.Bakhvaloff
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Alter insert в текущую же таблицу
    #38978121
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zirraНет, не могу...
Как насчёт "дождь" ==> "осадки"?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Alter insert в текущую же таблицу
    #38978163
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov> Как насчёт "дождь" ==> "осадки"?

Никак. Это не синонимы.
Термины подучи, лингвист
ты наш, неприкаянный.

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Alter insert в текущую же таблицу
    #38978177
Kos-2010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И как это еще топик не закрыли способностей лингвистики разной :-)

Создал внуреннюю процедуру по совету Dimitry Sibiryakov
Незнаю, но пока работает
Входными парамерами являются: "id" слова "зачинщика", и списка синонимов, а далее она сама делает ссылки друг на друга
Код: 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.
create or alter procedure SP_ADD_SYNONYMS (
    IN_WORD_ID integer,
    IN_LIST_SYNONYM varchar(32000) character set WIN1251)
as
declare variable VAR_SYNONYM varchar(30);
declare variable VAR_SYNONYM_ID integer;
declare variable VAR_ Word varchar(30) character set WIN1251;
begin
--format variable "IN_LIST_SYNONYM" (ARRAY) must be: (~1628~1659~1456~1627~)
  select mt. Word
    from Words mt
      where mt.ID = :IN_WORD_ID
        into :VAR_ Word;

  for select ID, Word
        from Words
          where :IN_LIST_SYNONYM CONTAINING '~'||"ID"||'~'
          into :VAR_SYNONYM_ID,
               :VAR_SYNONYM  do
  begin
    insert into SYNONYM (Word, Word_ID, SYNONYM_ID)
      values (:VAR_ Word, :IN_WORD_ID, :VAR_SYNONYM_ID);

     insert into SYNONYM (Word, EW1_ID, SYNONYM_ID)
       values (:VAR_SYNONYM, :VAR_SYNONYM_ID, :IN_WORD_ID);
  end
  suspend;
end^
...
Рейтинг: 0 / 0
Alter insert в текущую же таблицу
    #38978944
Синонимичность зависит от контекста и явно нелинейна:

У понятия "смелый" есть еще одно значение, синонимом которого будет не "храбрый", а "нескромный". При этом "храбрый" не является синонимом "нескромный" никогда: "Екатерина, к слову, надела очень смелое платье, которое оголяло спину, неожиданно «украшенную» лямками бюстгальтера".

Так же "смелый" иногда упоминается в значении "рискованный", и к храброму это тоже слабо применимо...

Смелый - это кто не боится. Храбрый - это кто действует решительно. Близко, да, потому как храбрый часто действует смело, но вот смелый не всегда действует храбро :)
...
Рейтинг: 0 / 0
Alter insert в текущую же таблицу
    #38979082
dennis-r
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Антон КарасёвСинонимичность зависит от контекста и явно нелинейна...Это различные понятия, выражаемые одним и тем же словом (по сути - омонимы). У каждого понятия свой набор синонимов. В правильных словарях это обычно выделяется отдельными параграфами:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
 смелый 
1.Не знающий страха, не боящийся опасностей; отважный, храбрый.
 отт.  Выражающий бесстрашие, отвагу, храбрость.
 отт.  Совершаемый с отвагой, храбростью.
2.  перен.  Не боящийся трудностей.
отт. Преисполненный смелости, дерзания.
3.  перен.  Поднимающий, затрагивающий острые, злободневные вопросы.
4.  перен.  Заключающий в себе что-либо новое, оригинальное, выделяющийся чем-либо необычным.
 отт. разг.  Выходящий за границы принятого; нескромный.

У ТС'а, насколько я вижу, этот нюанс не учтён.
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Alter insert в текущую же таблицу
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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