Как использовать константы в SQL CREATE TABLE? - PullRequest
4 голосов
/ 01 января 2011

У меня есть 3 таблицы SQL, определенные следующим образом:

 CREATE TABLE organs(
    abbreviation   VARCHAR(16),
    -- ... other stuff
 );
 CREATE TABLE blocks(
    abbreviation   VARCHAR(16),
    -- ... other stuff
 );
 CREATE TABLE slides(
    title          VARCHAR(16),
    -- ... other stuff
 );

В трех вышеуказанных полях используется VARCHAR (16), потому что они связаны и имеют одинаковое ограничение длины.

Есть ли (желательно переносимый) способ поместить '16' в константу / переменную и сослаться на нее вместо CREATE TABLE? например. что-то вроде этого было бы неплохо:

 CREATE TABLE slides(
    title          VARCHAR(MAX_TITLE_LENGTH),
    -- ... other stuff
 );

Я использую PostgreSQL 8.4.

1 Ответ

7 голосов
/ 01 января 2011

Для чего предназначены домены:

CREATE DOMAIN title_data AS varchar(16);
CREATE TABLE slides(
    title          title_data,
    -- ... other stuff
 );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...