[EMAIL PROTECTED] (ow) writes: > I had a look at "create type" docs and it seems somewhat complex, involving > creation of functions and etc. I hope there's a simpler way for the following: > > How should one declare a new custom type, say, "AddressType" that corresponds > internally to "varchar(50)". In other words, all columns that are assigned > "AddressType" would internally be "varchar(50)". > > Example: > create type AddressType ... -- how to do it in a simple way? > > create table ADDRESS > { > address_id int not null, > street_address1 AdressType not null, > street_address2 AdressType not null, > .... > )
CREATE TYPE is intended to do something a whole lot more sophisticated than you want. What you want instead is CREATE DOMAIN. flexreg=# create domain addresstype varchar(50); CREATE DOMAIN flexreg=# create table address ( address_id integer not null, street1 addresstype not null, street2 addresstype); CREATE TABLE flexreg=# \d address Table "public.address" Column | Type | Modifiers ------------+-------------+----------- address_id | integer | not null street1 | addresstype | not null street2 | addresstype | -- select 'cbbrowne' || '@' || 'cbbrowne.com'; http://www.ntlug.org/~cbbrowne/nonrdbms.html "Although Unix is more reliable, NT may become more reliable with time" -- Ron Redman, deputy technical director of the Fleet Introduction Division of the Aegis Program Executive Office, US Navy. ---------------------------(end of broadcast)--------------------------- TIP 7: don't forget to increase your free space map settings