Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Ошибка при alter view / 16 сообщений из 16, страница 1 из 1
22.03.2017, 14:12
    #39424859
Polesov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при alter view
Привет.

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

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

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

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

ты ответы читаешь?
...
Рейтинг: 0 / 0
22.03.2017, 17:16
    #39425109
Polesov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при alter view
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
22.03.2017, 17:17
    #39425111
Polesov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при alter view
Симонов Денис, читаю. А что?
...
Рейтинг: 0 / 0
22.03.2017, 17:18
    #39425115
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при alter view
Polesov,

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

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


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


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