How to enforce an ENUM ?

How to enforce an ENUM ?

am 14.09.2007 12:50:08 von puginews

I have a table with an ENUM row.
If I insert a new row (using PHP5, MySQL5 and PDO for database
connections) with a value that is not in the ENUM list, no error, no
warning, no exception ... The row is inserted but the field where
normally one of the values of the ENUM list should be is empty even if
it is NOT NULL.

How can I enforce the ENUM ?

Pugi!

Re: How to enforce an ENUM ?

am 14.09.2007 16:03:21 von hellsop

["Followup-To:" header set to comp.databases.mysql.]
On Fri, 14 Sep 2007 03:50:08 -0700, Pugi! wrote:
> I have a table with an ENUM row.
> If I insert a new row (using PHP5, MySQL5 and PDO for database
> connections) with a value that is not in the ENUM list, no error, no
> warning, no exception ... The row is inserted but the field where
> normally one of the values of the ENUM list should be is empty even if
> it is NOT NULL.
>
> How can I enforce the ENUM ?

List the acceptable values in another table. Add a foreign key
constraint to your table and column referring to that list of values.
It's up to you to decide what you want to do with the values in the main
data table when you alter or delete the entry in the list of values
table: nothing, follow the alteration, delete the records with that
value, etc.

--
6. I will not gloat over my enemies' predicament before killing them.
--Peter Anspach's list of things to do as an Evil Overlord

Re: How to enforce an ENUM ?

am 14.09.2007 16:24:16 von zeldorblat

On Sep 14, 6:50 am, Pugi! wrote:
> I have a table with an ENUM row.
> If I insert a new row (using PHP5, MySQL5 and PDO for database
> connections) with a value that is not in the ENUM list, no error, no
> warning, no exception ... The row is inserted but the field where
> normally one of the values of the ENUM list should be is empty even if
> it is NOT NULL.
>
> How can I enforce the ENUM ?
>
> Pugi!

I looked in the manual for you and found this information: