2011-01-01 8 views
4

Ich habe 3 SQL-Tabellen, wie folgt definiert:Wie verwendet man Konstanten in SQL CREATE TABLE?

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

Die drei Felder vor allem verwenden VARCHAR (16), weil sie und haben die gleiche Längenbeschränkung verwandt sind.

Gibt es eine (vorzugsweise tragbare) Möglichkeit, '16' in eine Konstante/Variable zu setzen und stattdessen in CREATE TABLE zu referenzieren? z.B. etwas wie das wäre nett:

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

Ich benutze PostgreSQL 8.4.

Antwort

7

Das ist, was Domains sind für:

 
CREATE DOMAIN title_data AS varchar(16); 
CREATE TABLE slides(
    title   title_data, 
    -- ... other stuff 
); 
+0

Danke, vergaß ich Domains. – kchiu

Verwandte Themen