Table creation: Difference between revisions

From Rosetta Code
Content added Content deleted
No edit summary
Line 12: Line 12:
CREATE SEQUENCE account_seq start 100;
CREATE SEQUENCE account_seq start 100;
CREATE TABLE account (
CREATE TABLE account (
account_id int4 PRIMARY KEY DEFAULT nextval('account_seq'),
account_id int4 PRIMARY KEY DEFAULT nextval('account_seq'),
created date not null default now(),
created date not null default now(),
active bool not null default 't',
active bool not null default 't',
username varchar(16) unique not null,
username varchar(16) unique not null,
balance float default 0,
balance float default 0,
age int2,
age int2,
notes text
notes text
Line 22: Line 22:
CREATE TABLE account_note (
CREATE TABLE account_note (
account_id int4 not null REFERENCES account,
account_id int4 not null REFERENCES account,
created timestamp not null default now(),
created timestamp not null default now(),
note text not null,
note text not null,
unique(account_id, note)
unique(account_id, note)
);
);

Revision as of 16:56, 24 January 2007

Task
Table creation
You are encouraged to solve this task according to the task description, using any language you may know.

In this task, the goal is to create a table to exemplify most commonly used data types and options.

PostgreSQL

Postgres developers, please feel free to add additional data-types you commonly use to this example.

-- This is a comment

CREATE SEQUENCE account_seq start 100;
CREATE TABLE account (
  account_id  int4        PRIMARY KEY DEFAULT nextval('account_seq'),
  created     date        not null default now(),
  active      bool        not null default 't',
  username    varchar(16) unique not null,
  balance     float       default 0,
  age         int2,
  notes       text
);

CREATE TABLE account_note (
  account_id  int4      not null REFERENCES account,
  created     timestamp not null default now(),
  note        text      not null,
  unique(account_id, note)
); 
-- bool:       't', 'f' or NULL
-- int2:       -32768 to +32767
-- int4:       -2147483648 to +2147483647
-- float:      decimal
-- date:       obvious
-- timestamp:  date time
-- char(#):    space padded text field with length of #
-- varchar(#): variable length text field up to #
-- text:       not limited