Как корректно добавить новую таблицу?
Модераторы: m0p3e, edward_K, Модераторы
не получается добавить индексы.
пишу
Alter Table MyTable
Add Index (MyTable09 = DREC + CPODR + CREC + WTREE)
Add Index (MyTable10 = DREC + CPODR + WTREE)
);
ругается, говорит, что для изменения стр-ры необходимо выключить проек, журнал и почистить его...
Журнал выключил проект - не знаю как отключить... зачем такие сложности? Ка быть? в таблицах уже куча данных...
пишу
Alter Table MyTable
Add Index (MyTable09 = DREC + CPODR + CREC + WTREE)
Add Index (MyTable10 = DREC + CPODR + WTREE)
);
ругается, говорит, что для изменения стр-ры необходимо выключить проек, журнал и почистить его...
Журнал выключил проект - не знаю как отключить... зачем такие сложности? Ка быть? в таблицах уже куча данных...
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
для того чтобы добавить таблу нужно тоже проделать - вы ж это сумели сделать.
протект выключается так же как и журнал - тока модуль другой.
не забудьте потом грохнуть journal.adf - там часто одна запись остается и блокирует.
Вариант для первасива.
1.остановить работу всех.
2.скопировать ваш каталог и dict в другое место.
3.Выполнить докомиляцию там
4.вернуть все на место(сохранив предыдущий вариант)
протект выключается так же как и журнал - тока модуль другой.
не забудьте потом грохнуть journal.adf - там часто одна запись остается и блокирует.
Вариант для первасива.
1.остановить работу всех.
2.скопировать ваш каталог и dict в другое место.
3.Выполнить докомиляцию там
4.вернуть все на место(сохранив предыдущий вариант)
Re: Как корректно добавить новую таблицу?
UP-ну тему на всякий случай.
Люди постепенно начали переходить на Галактику 9.1 стали сталкиваться с конфликтом номеров таблиц добавленных ими в 8.1. Провел некоторое историческое расследование. Хочу публично озвучить что в Галактике есть официально зарезервированный диапазон куда программистам Галактики запрещено добавлять таблицы.
Для пользователей и партнеров зарезервирован диапазон кодов таблиц 31500 .. 31899
Инструментарий (Support и компилятор) не запрещает давать таблицам произвольные свободные номера. И это правильно т.к. инструментарием пользуются все программисты.
Чтобы не было дополнительных неудобств с конвертацией собственных таблиц при переходе на новые версии. Рекомендую пользователям создавать таблицы с номерами из этого диапазона.
PS: Информацию про официально закрепленный диапазон можно найти в ПИР 104.19971, 101.17051, 102.73712
Люди постепенно начали переходить на Галактику 9.1 стали сталкиваться с конфликтом номеров таблиц добавленных ими в 8.1. Провел некоторое историческое расследование. Хочу публично озвучить что в Галактике есть официально зарезервированный диапазон куда программистам Галактики запрещено добавлять таблицы.
Для пользователей и партнеров зарезервирован диапазон кодов таблиц 31500 .. 31899
Инструментарий (Support и компилятор) не запрещает давать таблицам произвольные свободные номера. И это правильно т.к. инструментарием пользуются все программисты.
Чтобы не было дополнительных неудобств с конвертацией собственных таблиц при переходе на новые версии. Рекомендую пользователям создавать таблицы с номерами из этого диапазона.
PS: Информацию про официально закрепленный диапазон можно найти в ПИР 104.19971, 101.17051, 102.73712
Re: Как корректно добавить новую таблицу?
Добавляю новую таблицу в словарь Галактики. Всех пользователей выгнал, протект и журнализацию отключил. При компиляции ругается на то, что "Ошибка: Не могу блокировать базу данных."
Код: Выделить всё
//Нормы страхового запаса
Alter Dictionary ;
create table D_USER.normzapas "Нормы страхового запаса"
with table_Code = 32600 with replace
with tableOptions header, journal
(
cmc : ref(table katmc) "Ссылка на katmc.nrec",
cpodr : ref(table katpodr) "Ссылка на katpodr.nrec",
kol : double "Количество",
pdate : date "Дата создания",
pbdate: date "Дата начальная",
pedate: date "Дата конечная")
with index
(
normzapas01 = cmc,
normzapas02 = cpodr,
normzapas03 = cmc+cpodr,
normzapas04 = kol,
normzapas05 = pdate,
normzapas06 = pbdate+pedate
);
alter table normzapas
foreign key normzapas01
references katmc
primary key KATMC01;
alter table normzapas
foreign key normzapas02
references katpodr
primary key KATPODR01;
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
Re: Как корректно добавить новую таблицу?
почитайте получше - Alter Dictionary ; уже не рекомендуется использовать. Да и без него не надо ни чистить журнал, ни отключать протект, а создание делается просто запросом в сапорт - SQL(удаление в компиляторе интерфейсов тока почему то либо руками в консоле управления , если есть лицензия на все).
Re: Как корректно добавить новую таблицу?
Таблица с ошибками, но создалась. При открытии таблицы в саппорте появляется ошибка "Ошибка открытия таблицы 32600. Таблица не найдена". Также таблица создалась не со всеми полями, которые я описывал. Пробую удалить таблицу в саппорте в SQL
. Пишет, что "Ошибка. Контекст не найден"
Код: Выделить всё
drop table normzapas;
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
Re: Как корректно добавить новую таблицу?
edward_K писал(а):(удаление в компиляторе интерфейсов тока почему то либо руками в консоле управления , если есть лицензия на все).
Re: Как корректно добавить новую таблицу?
Пробовал удалять через компилятор интерфейсов, пишет, что "Вы не можете удалять таблицы Галактики". Чего не хватает?edward_K писал(а):edward_K писал(а):(удаление в компиляторе интерфейсов тока почему то либо руками в консоле управления , если есть лицензия на все).
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
Re: Как корректно добавить новую таблицу?
Если вы добавляли с Alter Dictionary, то и удалять нужно также. А субд какая?
Возможно придется через vip удалять (штатно все делается именно им).
Возможно придется через vip удалять (штатно все делается именно им).
Re: Как корректно добавить новую таблицу?
База оракловая. При попытке vip-ом удалить ругается "Не могу блокировать базу данных". Создал таблицу саппортом SQL.
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
Re: Как корректно добавить новую таблицу?
Если с Alter создали, то для удаления также нужно всех выгнать и делать в монопольном режиме. Без alter вроде я на ходу удалял, но на MSSQL.
Re: Как корректно добавить новую таблицу?
В том то и дело, что создал без alter... Пробую vip-ом удалять, ругается "Не могу блокировать базу данных".edward_K писал(а):Если с Alter создали, то для удаления также нужно всех выгнать и делать в монопольном режиме. Без alter вроде я на ходу удалял, но на MSSQL.
Re: Как корректно добавить новую таблицу?
Таблица не создавалась из-за того, что был открыт саппорт. Но потом саппорт не запускается, поэтому надо пересоздавать пользователя GAL810#ATLANTIS.