|
|
|||||||||
|
|||||||||
| |||||||||
|
|
|
| |||||||||
![]() |
|
|
«
Previous Thread
|
Next Thread
»
|
Thread Tools | Search this Thread | Rate Thread | Display Modes |
|
|
|
Stay one step ahead of the competition. Evaluate and give feedback
on some of the hottest web development tools on the market today.
Make your opinion heard! Click
Here
|
|
#1
|
|||
|
|||
|
ENUM field type question - mysql
"ENUM - a string type which can accept one value from a list of previously-defined possible values"
Is there a way to make it so the possible values are drawn from another table? Specifically, I would like a field that only accepts values if they are one of the values in the primary key field of a seperate table. |
|
#2
|
|||
|
|||
|
RE: ENUM field type question - mysql
I tend to think that you should not be using enums in this case. Enums were not designed to be variable, that's why they invented varchars and text types.
If you insist on this behavior, you have two options that I can think of, both involve scripting: 1. Make the field a varchar or text type rather than enum, and write code to check (validate) the entries against the primary keys in the second table every time you attempt to insert a record into the first table. 2. Write a script that will add every new primary key entered in the second table to the enum type in the first table. You will also need to delete it when a record is removed. For the insertion, this SQL will change the enum type (from n options to n+1): Code:
ALTER TABLE `table1` CHANGE `enumvar` `enumvar` ENUM( 'value1', 'value2', ... , 'valuen', 'newvalue' ) |
![]() |
| Viewing: Codewalkers Forums > Other Technologies > Database Help > ENUM field type question - mysql |
| Thread Tools | Search this Thread |
| Display Modes | Rate This Thread |
|
|
|
|
|
|
|