2015-09-08 4 views
1

Что такое синтаксис SQL DDL AS400 для добавления столбца в существующую таблицу? Мне также нужно указать имена длинного и короткого полей.AS400 DDL SQL Синтаксис для добавления нового столбца с коротким и длинным именем поля

(SQL - Structured Query Language) (DDL - Data Definition Language: Это SQL, который изменяет структуру таблиц или можно изменить параметры базы данных)

ответ

5

Чтобы добавить новый столбец:

ALTER TABLE mytable 
    ADD long_column_name FOR COLUMN shortname VARCHAR(21) 
     BEFORE existing_column_name; 

Вы можете оставить вне BEFORE положение, если вы добавляете колонку в конце записи.

Большинство магазинов IBM i также хотели бы указать описание текста столбца и заголовки столбцов.

LABEL ON COLUMN mytable.colname TEXT IS '50 char description goes here'; 

LABEL ON COLUMN mytable.colname IS 'Heading Line 1  Heading Line 2  Heading Line 3'; 

В случае, если заголовок строка столбец содержит до 3 секции, 20 символов, что позволяет заголовок отображать до 3 строк в высоту.

Утверждение, определяющее текстовое описание столбца, дифференцируется с использованием ключевого слова TEXT.

+0

Это замечательно! С этого момента я обязательно использую LABEL ON COLUMN. –

0
ALTER TABLE Student ADD StaffId_Advisor FOR COLUMN Advisor VARCHAR(21) 

Вместо того, чтобы видеть поле, называемое STAFF00001 в sysibm.SQLColumns вы увидите советника.

Вот немного кода, я использую для описания таблицы:

SELECT table_name, system_column_name, column_text, Type_Name, column_Size 
FROM sysibm.SQLColumns 
WHERE table_schem IN ('UWSP_TEST', 'UWSP_PROD') -- Library Name 
AND upper(table_name) like 'STUDENT' -- Table name make sure it is upper case 
--order by system_column_name 

Что касается конвенции поле имен я использовал: StaffId_Advisor Предположим, у меня есть таблица называется Staff. В этой таблице у меня есть первичный ключ, называемый StaffId. В таблице «Персонал» присутствуют профессора, помощники, секретари, адъюнкт-факультет, советники-ученики, охранники и т. Д. У студента может быть несколько полей с ограничениями внешнего ключа с таблицей персонала. Во избежание путаницы (и придерживайтесь 1NF, на мой взгляд) я называю это поле, используя имя поля таблицы первичного ключа, за которым следует цель для поля. Это гарантирует, что другие разработчики поймут использование этого поля. В дополнение к значениям одиночной цели я утверждаю, что 1NF также требует уникального наименования полей. И везде, где это поле используется, имя должно быть идентичным. Хотя это подразумеваемое определение, я считаю, что это должно быть важным различием. В этом случае модификатор используется для уточнения цели поля.

 Смежные вопросы

  • Нет связанных вопросов^_^