Вопрос по sql – Oracle создать таблицу с комментариями к столбцам

11

Существует ли синтаксис комментария к столбцу, который позволяет мне указывать комментарий столбца непосредственно там, где я объявляю столбец в операторе создания таблицы (т.е. в строке)?11 г спецификации ничего не упоминает, надругая страница что-то упоминается, но я не мог заставить его работать. Есть способуказать комментарии после создания таблицы, но я думаю, что это раздражает, что комментарий отделен от определения поля. Я ищу что-то вроде этого (который не работает):

<code>create table whatever (
 field number(15,0) primary key comment 'primary key generated from sequence pkseq',
 ...
)
</code>

Ваш Ответ

4   ответа
15

COMMENT ON синтаксис - единственный способ сделать это. SQL Server, PostgreSQL и DB2 используют один и тот же синтаксис (хотя, насколько мне известно, стандартного синтаксиса ANSI для добавления комментариев к объектам базы данных не существует).

MySQL поддерживает то, как вы хотели бы, чтобы это работало. Я согласен, что это был бы более хороший механизм, но по моему опыту, так мало людей вообще используют комментарии, что я сомневаюсь, что Oracle когда-нибудь изменит его.

Error: User Rate Limit ExceedednotError: User Rate Limit Exceeded
Error: User Rate Limit ExceededCOMMENT ONError: User Rate Limit Exceeded
5

comment on column ... is '' синтаксис.

0

-- assuming you have privileges
COMMENT ON COLUMN SCHEMA1.TABLE1.COL1 
  IS 'My comment'

-- then you can double check like this
SELECT * FROM all_col_comments WHERE 
  (OWNER, TABLE_NAME, COLUMN_NAME) 
  IN (('SCHEMA1','TABLE1','COL1'));

Обратите внимание, что комментарий теперь будет отображаться в SQLDeveloper (или в Toad, или в любой другой среде), пока вы не откроете свойства указанной таблицы.

Подобный синтаксис может использоваться для аннотирования таблиц, индексов и материализованных представлений. [источник:https://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_4009.htm]

Я понимаю, что подобный синтаксис существует для MySQL и других, но это не правильный ANSI. Это очень полезно, хотя.

4

смотре и редактировании таблиц в Oracles SQLExplorer. Он содержит мастер, который позволяет редактировать комментарии прямо рядом с колонками. Это даже позволяет легко создавать сценарии изменения таблицы.

Моя процедура при редактировании таблиц состоит в том, чтобы ввести изменения в мастере без их фактического выполнения, а затем перейти к егоDDL перейдите на вкладку и получите оттуда SQL-запрос (как обновление, а не сценарий полного создания) и нажмите «Отмена» в мастере. Затем я помещаю созданный SQL в сценарий SQL, который я пишу. Только когда я закончу со сценарием, я выполню все; Я никогда не делаю никаких изменений с помощью самого мастера.

Error: User Rate Limit Exceeded Hans-Peter Störr
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded Hans-Peter Störr

Похожие вопросы