Thread: How to use the SET data type? Help plz!

How to use the SET data type? Help plz!

From
pgadmin@claymccoy.com
Date:
When I add a column a table I am able to choose the SET DataType, but there is 
no obvious way to define the acceptable values for the set.
I'd like to use the gui that I use for creating all my other columns rather 
than doing it by hand.  The generated sql from the gui doesn't even seem right 
because it puts set in quotes.  I can't even enter sql by hand that should add 
a set with values, of course my syntax might not be right as I can't seem to 
find a good example for creating a set.
Can anyone help me in using sets with pgadmin?


Re: How to use the SET data type? Help plz!

From
Christopher Kings-Lynne
Date:
Ummmm...PostgreSQL doesn't support sets...

Chris

pgadmin@claymccoy.com wrote:

> When I add a column a table I am able to choose the SET DataType, but there is 
> no obvious way to define the acceptable values for the set.
> I'd like to use the gui that I use for creating all my other columns rather 
> than doing it by hand.  The generated sql from the gui doesn't even seem right 
> because it puts set in quotes.  I can't even enter sql by hand that should add 
> a set with values, of course my syntax might not be right as I can't seem to 
> find a good example for creating a set.
> Can anyone help me in using sets with pgadmin?
> 
> ---------------------------(end of broadcast)---------------------------
> TIP 4: Don't 'kill -9' the postmaster



Re: How to use the SET data type? Help plz!

From
Christopher Kings-Lynne
Date:
> Odd that it is a selectable datatype in pgadmin then huh?

That's a question for the pgAdmin guys, but I know that PostgreSQL has a  type called 'set', which is nothing to do
withsets as you understand 
 
them.

> If there are no sets, then is there anythign else that can be used to 
> represent that type of data.  I used them a lot in a mySQL database that I am 
> migrating from.  It is very useful to have a predefined set of values to 
> choose from, otherwise it would just be a text field with no constraints as to 
> the contents.  It is also nice to have the popup menus of the selecable values 
> when inputing data like how phpmyadmin handles sets. It seem slike a huge 
> oversight to not support them.

Look up CHECK constraints.

Lack of 'MySQL sets' in Postgres is NOT an oversight.  It's a random, 
non-SQL standard type that the MySQL developers made up one day that no 
other database on Earth supports.  Why should Postgres support it?  It's 
just a lame workaround for MySQL not supporting constraints.

(Sorry to sound all worked up about it, but it's one of the things I 
find annoying about MySQL...)

Chris




Re: How to use the SET data type? Help plz!

From
Christopher Kings-Lynne
Date:
> I see your points.  So how is the best way to implement this type of "set" idea 
> in something like postgres?  Say I have a column named primary colors, and I 
> want to limit this to red, blue, and yellow.  How is the best way to do this 
> without a mysql set?

CREATE TABLE foo (color varchar(255) NOT NULL,CHECK (color IN ('red', 'blue', 'yellow'))
};

Chris