Re: Alter column type
Arioch пишет: AS: включите plz отправку писем в MIME У него все в стандартной русской сетевой кодировке KOI8-R.
Re: Alter column type
22.06.2011 0:26, Arioch пишет: Но вообще это стандартная проблема при backup/restore например у вас есть varchar = O001 - букву вместо нолика, бывает. alter varchar - integer отработает. Да неужели. -- Дмитрий Еманов
Re: Alter column type
спасибо за ответ. кстати до сих пор сохранилось любопытство как индекс проиндексирует разнотипные данные... физически в струкрурах это integer, а при его чтении любым читателем (в т.ч. индексатором) он интерпретируется в новый строковый тип? вопрос наверно глупый и проверяется экспериментами, но раз уж я тут... PS хочу убедиться что ничего не сломается если сделать этот злосчастный alter на рабочей бд именно так, на то и версионный сервер. Пока не изменятся данные - они и не изменятся.
Re: Alter column type
В письме от Wed, 22 Jun 2011 15:08:30 +0400, Кравченко Алексей ista...@ngs.ru сообщал: хочу убедиться что ничего не сломается если сделать этот злосчастный alter на рабочей бд а почему бы тебе сразу после альтера не сделать backup/restore и database compare ? И уверен будешь, и структуру того же индекса оптимизируешь. -- Написано в почтовом клиенте браузера Opera: http://www.opera.com/mail/
Re: Alter column type
В письме от Wed, 22 Jun 2011 10:27:42 +0400, М.Королев mia...@mail.ru сообщал: У него все в стандартной русской сетевой кодировке KOI8-R. стандартной для чего ? для письма, если кодировка не указана, стандартна 7-битная ASCII Latin1 -- Написано в почтовом клиенте браузера Opera: http://www.opera.com/mail/
Re: Alter column type
В письме от Wed, 22 Jun 2011 11:14:35 +0400, Dmitry Yemanov dim...@users.sf.net сообщал: например у вас есть varchar = O001 - букву вместо нолика, бывает. alter varchar - integer отработает. Да неужели. Новость хорошая. Тогда бы было хорошо FAQ обновить, какие проверки и когда выполняются в актуальных версиях. Вообще хорошо, что у человека вопрос возник. Мог бы и не возникнуть... Невосстановимый бакап, наверное, хорошо знакомая штука для всех опытных. А для новичка это хорррошие грабли. Непредсказуемые по его опыту с другими БД. До сих пор помню, как у меня IB5 не развернулся из-за столбца COMPUTED BY UDF Шок и трепет :-) -- Написано в почтовом клиенте браузера Opera: http://www.opera.com/mail/
Re: Alter column type
В письме от Wed, 22 Jun 2011 15:08:30 +0400, Кравченко Алексей ista...@ngs.ru сообщал: кстати до сих пор сохранилось любопытство как индекс проиндексирует разнотипные данные... это если индекс будет перестраиваться, а зачем ему перестраиваться для старых нетронутых записей ? если бы он перестраивался, наверное, ты бы не жаловался, что альтер слишком быстро прошел :-) Вот кстати, когда будешь на 2.5 переходить не забудь ещё один сюрприз: ALTER COLUMN ... TYPE no longer fails if column is used in trigger or SP Changed in: 2.5 Description: Previously, if a table column was referenced in a stored procedure or trigger, the column's type could not be changed, even if the change would not break the PSQL code. Now such changes are permitted – even if they do break the code. Несмотря на старые данные в конце http://www.ibphoenix.com/resources/documents/design/doc_150 -- Написано в почтовом клиенте браузера Opera: http://www.opera.com/mail/
Re: Alter column type
а почему бы тебе сразу после альтера не сделать backup/restore и database compare ? И уверен будешь, и структуру того же индекса оптимизируешь. это хороший вариант, но трудоемкий... тоесть процесс занимает часа 4, и делать это можно лишь в ночное время, когда спать хочется, а без надзора оставить нельзя в общем лишний раз это делать нехочется :) хотя видимо придется, ради дальшейшего спокойствия
Re: Alter column type
это если индекс будет перестраиваться, а зачем ему перестраиваться для старых нетронутых записей ? насколько я понимаю он обязан быть перестроен, т.к. для строк например , 10 больше чем 2... тоесть будет совсем другой порядок чем при integer если бы он перестраивался, наверное, ты бы не жаловался, что альтер слишком быстро прошел :-) я полагаю что при наличии индекса и других зависимостей alter просто не выполнится
Рекурсивные EB
Привет всем! :) Почему бы не ввести специальную конструкцию, для вызова из блока самого себя? Например RDB$SELF или RDB$THIS Пример удаления ветки из дерева: CREATE TABLE SYMPTOMS ( ID D_ID, PARENT_ID D_ID, CONSTRAINT PK_SYMPTOMS PRIMARY KEY (ID), CONSTRAINT FK_SYMPTOMS_PARENT_ID FOREIGN KEY (SYM_ID) REFERENCES SYMPTOMS (ID) ); execute block(ID: D_ID) returnung (CNT: integer) as declare variable CID D_ID; begin CNT = 0 for select ID from SYMPTOMS where PARENT_ID = :ID into :CID do CNT = CNT + RDB$SELF(:ID); delete from SYMPTOMS where ID = :ID; end -- Александр Замараев