读一点关于
MySQL enum,我猜最接近的等价物将是一个简单的检查约束
CREATE TABLE sizes (
name VARCHAR2(10) CHECK( name IN ('small','medium','large') )
);
但是不允许您通过索引引用该值。更复杂的外键关系也是可能的
CREATE TABLE valid_names (
name_id NUMBER PRIMARY KEY,
name_str VARCHAR2(10)
);
INSERT INTO valid_sizes VALUES( 1, 'small' );
INSERT INTO valid_sizes VALUES( 2, 'medium' );
INSERT INTO valid_sizes VALUES( 3, 'large' );
CREATE TABLE sizes (
name_id NUMBER REFERENCES valid_names( name_id )
);
CREATE VIEW vw_sizes
AS
SELECT a.name_id name, <>
FROM valid_sizes a,
sizes b
WHERE a.name_id = b.name_id
只要你通过视图进行操作,似乎你可以合理地复制功能。
现在,如果你允许PL / SQL解决方案,你可以创建自定义对象类型,可以包括逻辑来限制他们可以容纳的值的集合,并有方法来获取ID和获取值等。