drno-reg
@drno-reg
см не кратко

Как решить проблему добавления описания к колонкам?

Здравствуйте.

Пытаюсь добавить описание к колонкам таблицы в БД Vertica

create table um.um_users
(
id number,
first_name varchar2(50) not null,
last_name varchar2(50) not null,
password varchar2(50) not null,
last_login date,
username varchar2(50) not null,
role varchar2(50)
)
;

добавляю комментарий
comment on column um.um_users.first_name 
is 'Фамилия';

и получаю ошибку

SQL Error [2639] [42703]: [Vertica][VJDBC](2639) ROLLBACK: Column "um_users"."first_name" does not exist as a projection column
  [Vertica][VJDBC](2639) ROLLBACK: Column "um_users"."first_name" does not exist as a projection column
    com.vertica.util.ServerException: [Vertica][VJDBC](2639) ROLLBACK: Column "um_users"."first_name" does not exist as a projection column


Как ее решить?
  • Вопрос задан
  • 232 просмотра
Решения вопроса 2
DarkRaven
@DarkRaven
разработка программного обеспечения
А что будет, если сделать
comment on column um_users.first_name 
is 'Фамилия';
?

UPD. Вы вот это видели - www.vertica-forums.com/viewtopic.php?t=144 ? Судя по всему, это ваш случай.
Ответ написан
drno-reg
@drno-reg Автор вопроса
см не кратко
разобрался в чем суть дела, Vertica работает с проекциями объектов БД
и в этот случай также не исключение, для того чтобы создать комментарий для колонки, напрямую к таблице его сделать нельзя, он привязывается только к проекции таблицы.

Существует 2 варианта решения этой задачи

1. Вы создаете таблицу и делаете insert новых данных.
Логика БД в таком случае самостоятельно создаст проекцию, НО вам ее нужно будет определить путем несложного select

select projection_name from projections where anchor_table_name = 'um_users';


и далее вы комментарий создаете к проекции исходного объекта БД

comment on column um.um_users_super.first_name 
is 'Фамилия';


2. Вы создаете после таблицы сразу проекцию без ожидания поступления данных

create projection um.um_users_super as select * from um.um_users;


и уже далее
comment on column um.um_users_super.first_name 
is 'Фамилия';
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы