[SQL] A simple way to Create type ...?
Hi, 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 AdressTypenot null, street_address2 AdressTypenot null, ) Thanks __ Do you Yahoo!? Yahoo! SiteBuilder - Free, easy-to-use web site design software http://sitebuilder.yahoo.com ---(end of broadcast)--- TIP 5: Have you checked our extensive FAQ? http://www.postgresql.org/docs/faqs/FAQ.html
Re: [SQL] A simple way to Create type ...?
--- ow <[EMAIL PROTECTED]> wrote: > Hi, [...] > 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? I guess, ideally it'd be create type AddressType AS varchar(50) ; but it does not work. Any ideas? Thanks __ Do you Yahoo!? Yahoo! SiteBuilder - Free, easy-to-use web site design software http://sitebuilder.yahoo.com ---(end of broadcast)--- TIP 9: the planner will ignore your desire to choose an index scan if your joining column's datatypes do not match
Re: [SQL] A simple way to Create type ...?
> I guess, ideally it'd be > create type AddressType AS varchar(50) ; > but it does not work. Only one keyword off. SQL calls this a domain. They're limited in 7.3, but much improved (not yet perfect) for 7.4. http://www.postgresql.org/docs/7.3/interactive/sql-createdomain.html signature.asc Description: This is a digitally signed message part
Re: [SQL] A simple way to Create type ...?
[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 AdressTypenot null, > street_address2 AdressTypenot 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
Re: [SQL] A simple way to Create type ...?
--- Rod Taylor <[EMAIL PROTECTED]> wrote: > Only one keyword off. SQL calls this a domain. > > They're limited in 7.3, but much improved (not yet perfect) for 7.4. > > http://www.postgresql.org/docs/7.3/interactive/sql-createdomain.html Excellent news! Thanks __ Do you Yahoo!? Yahoo! SiteBuilder - Free, easy-to-use web site design software http://sitebuilder.yahoo.com ---(end of broadcast)--- TIP 3: if posting/reading through Usenet, please send an appropriate subscribe-nomail command to [EMAIL PROTECTED] so that your message can get through to the mailing list cleanly
Re: [SQL] A simple way to Create type ...?
On Tuesday, September 16, 2003, at 05:27 PM, Christopher Browne wrote: What you want instead is CREATE DOMAIN. flexreg=# create domain addresstype varchar(50); The problem here is that you can't tell the difference between a addresstype column and a varchar(50) column in the row description information returned by SELECT. All columns just look like varchar(50). It would be nice if there was something as easy as CREATE DOMAIN but worked more like CREATE TYPE. Best, John DeSoi, Ph.D. ---(end of broadcast)--- TIP 9: the planner will ignore your desire to choose an index scan if your joining column's datatypes do not match