powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Ошибка при alter view
16 сообщений из 16, страница 1 из 1
Ошибка при alter view
    #39424859
Polesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет.

FB 2.5.6.27020, БД в 3-м диалекте

Создадим табличку:
Код: sql
1.
2.
3.
4.
create table T (
    ID   integer not null primary key,
    VAL  varchar(10),
    F    float );



Поверх таблички создадим вьюшку:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
create view V (
    ID,
    VAL,
    F )
as
select ID,
       VAL,
       1 as F
  from T
;



И поверх вьюшки создадим еще одну вьюшку:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
create view VV (
    ID,
    VAL,
    F )
as
select ID,
       VAL,
       F
  from V
;



Теперь попытаемся изменить первую вьюшку:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
alter view V (
    ID,
    VAL,
    F )
as
select ID,
       VAL,
       F
  from T
;



И получаем ошибку:
Код: powershell
1.
2.
3.
4.
5.
Statement failed, SQLSTATE = 42000
unsuccessful metadata update
-cannot delete
-DOMAIN RDB$4
-there are 1 dependencies



P.S. Все действия выполнялись в ISQL.

С уважением, Polesov.
...
Рейтинг: 0 / 0
Ошибка при alter view
    #39424873
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тут тебе не Оракул и не MS SQL, изменять объект у которого есть зависимости - запрещено.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Ошибка при alter view
    #39424878
Polesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovТут тебе не Оракул и не MS SQL...

А каков тогда смысл оператора alter view?
...
Рейтинг: 0 / 0
Ошибка при alter view
    #39424889
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Polesov,

1. Не у всех view есть зависимости
2. В некоторых случаях можно изменить даже если есть зависимости, но у тебя сменился тип выходного поля F
...
Рейтинг: 0 / 0
Ошибка при alter view
    #39424896
Polesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

Да это все понятно. Просто можно было бы в такой ситуации не пытаться удалить домен, используемый второй view.
А так приходится делать некоторое количество дополнительных операций.
...
Рейтинг: 0 / 0
Ошибка при alter view
    #39424915
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
попробуй задать пользовательский домен явно, а не просто integer - float.
...
Рейтинг: 0 / 0
Ошибка при alter view
    #39424936
Polesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan_Pisarevskyпопробуй задать пользовательский домен явно
В моем конкретном случае поле вычисляется во view.
...
Рейтинг: 0 / 0
Ошибка при alter view
    #39425002
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PolesovIvan_Pisarevskyпопробуй задать пользовательский домен явно
В моем конкретном случае поле вычисляется во view.Не важно, просто попробуй все поля задать с явными доменами.
...
Рейтинг: 0 / 0
Ошибка при alter view
    #39425091
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PolesovВ моем конкретном случае поле вычисляется во view.
и что - вычисление нельзя обрамить в cast(.... as нужныйтип)?
...
Рейтинг: 0 / 0
Ошибка при alter view
    #39425107
Polesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan_Pisarevskyпросто попробуй все поля задать с явными доменами.
Поля чего?
Если таблицы, то не поможет, т.к. во view поле вычисляемое.
Если view, то как явным образом назначить тип поля?
...
Рейтинг: 0 / 0
Ошибка при alter view
    #39425108
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Polesov,

ты ответы читаешь?
...
Рейтинг: 0 / 0
Ошибка при alter view
    #39425109
Polesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvи что - вычисление нельзя обрамить в cast(.... as нужныйтип)?

Выполним скрипт:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
create domain D_INT as integer;

create table T (
    ID   integer not null primary key,
    VAL  varchar(10),
    F    float );

create view V (
    ID,
    VAL,
    F )
as
select ID,
       VAL,
       cast( 1 as D_INT ) as F
  from T
;



Видно, что во view поле F кастится к домену D_INT.

Выполним запрос:
Код: sql
1.
2.
3.
select RDB$FIELD_NAME, RDB$RELATION_NAME, RDB$FIELD_SOURCE
  from RDB$RELATION_FIELDS
 where RDB$RELATION_NAME = 'V'



Полю F соотвествует домен RDB$4
Код: powershell
1.
2.
3.
4.
RDB$FIELD_NAME RDB$RELATION_NAME RDB$FIELD_SOURCE
ID             V                 RDB$1
VAL            V                 RDB$2
F              V                 RDB$4
...
Рейтинг: 0 / 0
Ошибка при alter view
    #39425111
Polesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис, читаю. А что?
...
Рейтинг: 0 / 0
Ошибка при alter view
    #39425115
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Polesov,

ну а чего тогда спрашиваешь как назначить тип
...
Рейтинг: 0 / 0
Ошибка при alter view
    #39425134
Polesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денисну а чего тогда спрашиваешь как назначить тип

Я попросил уточнить, тип чего - таблицы или view.
...
Рейтинг: 0 / 0
Ошибка при alter view
    #39425248
Фотография S.G.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PolesovP.S. Все действия выполнялись в ISQL.


В IBExpert-e можно через "recreate script", это улаживает проблемы с зависимостями.
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Ошибка при alter view
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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