Re: Partner index does not exist or is inactive.
Hello, Dmitry! Dmitriy A. Beloshistov wrote: Update rdb$indices set rdb$index_inactive=0 where rdb$index_inactive=1 Так не делаю, потому как от мастеров не слышал, что это кошерно. это как раз очень даше кошерно. Хм, а с каких это пор Update`тить системные таблицы, чтобы брюки превратились... при наличии специальной конструкции ALTER INDEX стало кошерным? системные таблицы - слишком общее понятие. какие-то апдейтить разумеется нельзя, а другие - очень даже можно. например, rdb$functions, если надо поменять имя функции из dll или само имя dll. и rdb$indices в плане активации-деактивации индекса тоже можно. особенно если база битая, например, в справочниках убилась часть записей, рестор не пройдет из-за нарушения FK. Это в 2.1 (а может и в 2.0) сейчас FB при такой ошибке пропускает индекс и активирует остальные. А до этих версий рестор обламывался, и в базе оставались неактивированными х.з. сколько индексов, причем неизвестно, таких же проблемных или нормальных. Мне даже софтину пришлось написать для внутреннего использования, которая ищет все неактивные индексы, и пытается поштучно активировать именно через update, ибо тут alter index или update пофиг. главное commit :-) -- Dmitri Kouzmenko, www.ibase.ru, (495) 953-13-34
RE: Partner index does not exist or is inactive.
Привет! Хм, а с каких это пор Update`тить системные таблицы, чтобы брюки превратились... при наличии специальной конструкции ALTER INDEX стало кошерным? системные таблицы - слишком общее понятие. какие-то апдейтить разумеется нельзя, а другие - очень даже можно. Ну это от безысходности ;) Мне даже софтину пришлось написать для внутреннего использования, которая ищет все неактивные индексы, и пытается поштучно активировать именно через update, ибо тут alter index или update пофиг. главное commit :-) Да я в принципе не против (мне если честно пофиг - update или alter активирует индекс). Хорошо бы собрать и включить в дистрибутив какую-никакую доку о том, что можно апдейтить, что нельзя и какой эффект будет. Не думаю, что тут все прозрачно и нет никаких подводных камней. WBR,Dmitry Beloshistov AKA [-=BDS=-]
Re: Partner index does not exist or is inactive.
Hello, Dmitriy! Dmitriy A. Beloshistov wrote: Да я в принципе не против (мне если честно пофиг - update или alter активирует индекс). Хорошо бы собрать и включить в дистрибутив какую-никакую доку о том, что можно апдейтить, что нельзя и какой эффект будет. Не думаю, что тут все прозрачно и нет никаких подводных камней. нет, нельзя такое делать. В доке должно быть написано, что никогда и ни при каких условиях нельзя модифицировать системные таблицы напрямую. Красными буквами, шрифтом 24, жирным. -- Dmitri Kouzmenko, www.ibase.ru, (495) 953-13-34
Re: Partner index does not exist or is inactive.
Dmitri Kuzmenko пишет: нет, нельзя такое делать. В доке должно быть написано, что никогда и ни при каких условиях нельзя модифицировать системные таблицы напрямую. Красными буквами, шрифтом 24, жирным. А потом те, кто прочитал эту доку придут сюда. И их пипец настигнет, когда кто-то из гуру даст рекомендацию на модификацию системных таблиц... и пойдёт молва о дырах безопасности в огнептице. З.Ы. вариант чисто гипотетический, так как доки мало кто сначала читает :D С уважением, Тарас Кучер
Re: Partner index does not exist or is inactive.
IMHO õ FB, ËÁË Õ ÌÀÂÏÇÏ ÉÎÓÔÒÕÍÅÎÔÁ, ÅÓÔØ [ÍÉÎÉÍÕÍ] Ä×Á ÕÒÏ×ÎÑ ×ÌÁÄÅÎÉÑ - ÄÌÑ ×ÓÅÈ (ÓÏÇÌÁÓÎÏ ÄÏËÉ) - ÄÌÑ ÇÕÒÕ (ËÏÇÄÁ ÔÙ ÐÏÎÉÍÁÅÛØ/ÞÕ×ÓÔ×ÕÅÛØ/ÚÎÁÅÛØ ËÁË ÏÎÏ ÒÁÂÏÔÁÅÔ É ÞÅÍ ÇÒÏÚÉÔ) ÐÏ ÄÏËÕÍÅÎÔÁÃÉÉ ÎÁ ÓËÒÉÐËÅ ÎÁÄÏ ÉÇÒÁÔØ ÓÍÙÞËÏÍ - ÔÏÞÎÏ ÐÏÌÕÞÉÛØ ÏÖÉÄÁÅÍÙÊ ÒÅÚÕÌØÔÁÔ ÎÏ ÎÁÒÏÄ ÔÁËÏÅ ×ÙÄÅÌÙ×ÁÅÔ...
Re: Partner index does not exist or is inactive.
Доброго времени суток! On 25 мар, 08:09, Taras Kucher wrote: Может заодно кто-то подскажет как активировать все индексы? А то пришлось каждый по отдельности редактировать. А в IBExpert не нашел как это сделать автоматом :) Можно попробовать создать скрипт с помощью запроса к системным таблицам, примерно такого (нуждается в проверке) select 'ALTER INDEX ' || rdb$index_name || ' ACTIVE;' from rdb$indices where rdb$system_flag is null and rdb$foreign_key is null and rdb$index_inactive = 1 С уважением, Евгений
Re: Partner index does not exist or is inactive.
On Tue, 25 Mar 2008 08:09:41 +0300, Taras Kucher [EMAIL PROTECTED] wrote: как активировать все индексы? set term ^ ; execute block as declare variable SQLCommand varchar(100); declare variable trigger_name varchar(32); declare variable trigger_inactive integer; begin for select rtrim(t.rdb$trigger_name), t.rdb$trigger_inactive from rdb$triggers t where not exists (select 1 from rdb$check_constraints chk where t.rdb$trigger_name = chk.rdb$trigger_name) and ((t.rdb$system_flag != 1) or (t.rdb$system_flag is null)) order by t.rdb$trigger_name into trigger_name, trigger_inactive do if (trigger_inactive = 1) then begin SQLCommand = 'ALTER TRIGGER ' || trigger_name || ' ACTIVE;'; execute statement SQLCommand; end end^ set term ; ^ -- Сергей Смирнов.
Re: Partner index does not exist or is inactive.
On Tue, 25 Mar 2008 10:58:24 +0300, WildSery wildsery-JGs/[EMAIL PROTECTED] wrote: if (trigger_inactive = 1) then begin Можно сократить, включив в условие запроса. Я упрощал из своей, у меня там ветвление условия активации есть... -- Сергей Смирнов.
Re: Partner index does not exist or is inactive.
On Tue, 25 Mar 2008 11:50:49 +0300, Vlad Khorsun [EMAIL PROTECTED] wrote: :))) Дааа. Понедельник прошёл тяжело. :'( Извините. -- Сергей Смирнов.
Re: Partner index does not exist or is inactive.
как активировать все индексы? SQLCommand = 'ALTER TRIGGER ' || trigger_name || ' ACTIVE;'; :))) -- Хорсун Влад PS обычно активируют в два прохода - сначала все не FK, потом только FK
Re: Partner index does not exist or is inactive.
On Tue, 25 Mar 2008 11:50:49 +0300, Vlad Khorsun [EMAIL PROTECTED] wrote: set term ^ ; execute block as declare variable SQLCommand varchar(100); declare variable idx varchar(32); begin for select i.rdb$index_name from rdb$indices i where i.rdb$index_inactive = 1 and i.rdb$system_flag is null and i.rdb$foreign_key is null union all select i.rdb$index_name from rdb$indices i where i.rdb$index_inactive = 1 and i.rdb$system_flag is null and i.rdb$foreign_key is not null into idx do begin SQLCommand = 'ALTER INDEX ' || idx || ' ACTIVE;'; suspend; end end^ set term ; ^ -- Сергей Смирнов.
Re: Partner index does not exist or is inactive.
Vlad Khorsun wrote: Возникает, когда пытаюсь связать таблицы отношением 1:1 Нет такого отношения в SQL Ась? 8-O -- Regards. Ded.
Re: Partner index does not exist or is inactive.
Ded ... Vlad Khorsun wrote: Возникает, когда пытаюсь связать таблицы отношением 1:1 Нет такого отношения в SQL Ась? 8-O CREATE RELATION BETWEEN T1 AND T2 AS 1:1 ??? 8-O -- Хорсун Влад
Re: Partner index does not exist or is inactive.
WildSery wrote: execute block as Update rdb$indices set rdb$index_inactive=0 where rdb$index_inactive=1 Commit Дипломчик-то у тебя не красный часом? :-D -- Regards. Ded.
Re: Partner index does not exist or is inactive.
Vlad Khorsun wrote: Нет такого отношения в SQL Ась? 8-O CREATE RELATION BETWEEN T1 AND T2 AS 1:1 ??? 8-O Почём трава? Ей-богу хороша. Или это в FB3 такой синтаксис будет? :-D Мине как-то родней вот так Alter Table T2 Add Constraint T2_PK Primary Key (ID) Alter Table T2 Add Constraint T2_FK Foreign Key (ID) References T1 -- Regards. Ded.
Re: Partner index does not exist or is inactive.
Ded ... Vlad Khorsun wrote: Нет такого отношения в SQL Ась? 8-O CREATE RELATION BETWEEN T1 AND T2 AS 1:1 ??? 8-O Почём трава? Ей-богу хороша. Или это в FB3 такой синтаксис будет? :-D Если обещаешь перейти - в 2.0 введу :^) Мине как-то родней вот так Alter Table T2 Add Constraint T2_PK Primary Key (ID) Alter Table T2 Add Constraint T2_FK Foreign Key (ID) References T1 Выдыхай, бобёр (с) :) Где тут отношение 1:1 ? :))) -- Хорсун Влад
Re: Partner index does not exist or is inactive.
:-D Мине как-то родней вот так Alter Table T2 Add Constraint T2_PK Primary Key (ID) Alter Table T2 Add Constraint T2_FK Foreign Key (ID) References T1 они ведь сделают, правда? да? Alter Table T2 Add Constraint T2_PK Primary Key (ID) Alter Table T2 Add Constraint T2_FK Foreign Key (ID) References T1 USING [index] T2_PK -- Булычев Алексей http://www.stella-npf.ru
Re: Partner index does not exist or is inactive.
Vlad Khorsun wrote: Alter Table T2 Add Constraint T2_PK Primary Key (ID) Alter Table T2 Add Constraint T2_FK Foreign Key (ID) References T1 Выдыхай, бобёр (с) :) Где тут отношение 1:1 ? :))) Скажешь какое, если не 1:1 - выдохну :) Пока что вижу, что T2 может содержать ID только содержащийся в ПК Т1 и только один раз. -- Regards. Ded.
Re: Partner index does not exist or is inactive.
Ded ... Vlad Khorsun wrote: Alter Table T2 Add Constraint T2_PK Primary Key (ID) Alter Table T2 Add Constraint T2_FK Foreign Key (ID) References T1 Выдыхай, бобёр (с) :) Где тут отношение 1:1 ? :))) Скажешь какое, если не 1:1 - выдохну :) Пока что вижу, что T2 может содержать ID только содержащийся в ПК Т1 и только один раз. Это уже не смешно. Я вижу constraint и вижу foreign key, но не вижу циферок. -- Хорсун Влад PS любую шутку можно довести до абсурда PPS но не всегда это нужно делать
Re: Partner index does not exist or is inactive.
Boulitchev Aleksey ... :-D Мине как-то родней вот так Alter Table T2 Add Constraint T2_PK Primary Key (ID) Alter Table T2 Add Constraint T2_FK Foreign Key (ID) References T1 они ведь сделают, правда? да? Alter Table T2 Add Constraint T2_PK Primary Key (ID) Alter Table T2 Add Constraint T2_FK Foreign Key (ID) References T1 USING [index] T2_PK Ему пофигу, он на 1.5 навсегда застрял :) -- Хорсун Влад
Re: Partner index does not exist or is inactive.
On 25 мар, 14:35, Ded wrote: Почём трава? Ей-богу хороша. Или это в FB3 такой синтаксис будет? :-D Мине как-то родней вот так Alter Table T2 Add Constraint T2_PK Primary Key (ID) Alter Table T2 Add Constraint T2_FK Foreign Key (ID) References T1 0..1:1 наверное всё-таки будет. -- Regards. Andrei Yeryomin.
Re: Partner index does not exist or is inactive.
On Tue, 25 Mar 2008 14:31:33 +0300, Ded [EMAIL PROTECTED] wrote: Update rdb$indices set rdb$index_inactive=0 where rdb$index_inactive=1 Так не делаю, потому как от мастеров не слышал, что это кошерно. Дипломчик-то у тебя не красный часом? Ещё не решил, какой купить. Своего нету :) -- Сергей Смирнов.
RE: Partner index does not exist or is inactive.
Дипломчик-то у тебя не красный часом? Ещё не решил, какой купить. Своего нету :) Универа ?-))) WBR,Dmitry Beloshistov AKA [-=BDS=-]
Re: Partner index does not exist or is inactive.
WildSery wrote: Дипломчик-то у тебя не красный часом? Ещё не решил, какой купить. Своего нету :) А говорил - дипломированный проктолог-иллюзионист, обманщик :-D -- Regards. Ded.
Re: Partner index does not exist or is inactive.
Hello, WildSery! WildSery wrote: Update rdb$indices set rdb$index_inactive=0 where rdb$index_inactive=1 Так не делаю, потому как от мастеров не слышал, что это кошерно. это как раз очень даше кошерно. -- Dmitri Kouzmenko, www.ibase.ru, (495) 953-13-34
Re: Partner index does not exist or is inactive.
Vlad Khorsun wrote: PS любую шутку можно довести до абсурда PPS но не всегда это нужно делать Затупил, прошу пардону :( -- Regards. Ded.
RE: Partner index does not exist or is inactive.
Привет. WildSery wrote: Update rdb$indices set rdb$index_inactive=0 where rdb$index_inactive=1 Так не делаю, потому как от мастеров не слышал, что это кошерно. это как раз очень даше кошерно. Хм, а с каких это пор Update`тить системные таблицы, чтобы брюки превратились... при наличии специальной конструкции ALTER INDEX стало кошерным? WBR,Dmitry Beloshistov AKA [-=BDS=-]
Re: Partner index does not exist or is inactive.
Ded ... Vlad Khorsun wrote: PS любую шутку можно довести до абсурда PPS но не всегда это нужно делать Затупил, прошу пардону :( А я уж начал в себе сомневаться, разволновался, панимаишь :) -- Хорсун Влад
Re: Partner index does not exist or is inactive.
Dmitriy A. Beloshistov wrote: Хм, а с каких это пор Update`тить системные таблицы, чтобы брюки превратились... при наличии специальной конструкции ALTER INDEX стало кошерным? В обычной жизни - ты прав. В аварийной ситуации базы, отресторенной без активирования индексов... select count(*) from rdb$indices COUNT === 3241 Ломает, в общем. И именно в частном случае именно Alter Index, который именно это и только это и делает. Пока, во всяком случае. Но есть таки некоторые основания надеяться, что эта логика проживёт долго. -- Regards. Ded.
Re: Partner index does not exist or is inactive.
On Tue, 25 Mar 2008 18:37:28 +0300, Ded [EMAIL PROTECTED] wrote: А говорил А, этот Этот коричневый, конечно. С зелёными звёздами. -- Сергей Смирнов.
Re: Partner index does not exist or is inactive.
Дипломчик-то у тебя не красный часом? :-D А у тебя? :-)) Дмитрий
Partner index does not exist or is inactive.
Доброго времени суток. Что значит сие выражение: Unsuccessful execution caused by an unavailable resource. Cannot create foreign key constraint . Partner index does not exist or is inactive. Возникает, когда пытаюсь связать таблицы отношением 1:1 Индекс у внешней таблицы существует и активен. FB v. 2.1.0.17735 С уважением, Тарас Кучер
Re: Partner index does not exist or is inactive.
Taras Kucher ... Доброго времени суток. Что значит сие выражение: Unsuccessful execution caused by an unavailable resource. Cannot create foreign key constraint . Partner index does not exist or is inactive. Нет первичного\уникального ключа в главной таблице Возникает, когда пытаюсь связать таблицы отношением 1:1 Нет такого отношения в SQL Индекс у внешней таблицы существует и активен. Чем докажешь ? -- Хорсун Влад
Re: Partner index does not exist or is inactive.
Vlad Khorsun пишет: Индекс у внешней таблицы существует и активен. Чем докажешь ? Каюсь - при ресторе поставил чек Деактивировать индексы. :) Может заодно кто-то подскажет как активировать все индексы? А то пришлось каждый по отдельности редактировать. А в IBExpert не нашел как это сделать автоматом :) С уважением, Кучер Тарас