1

我有一个 Informix 数据库,我真的很希望有一个“枚举”字段。由于 Informix(至少在我受限的版本中)没有内置枚举类型,因此我使用了一些 Google-Foo 来发现我可以将 VARCHAR 字段限制为仅允许某些值,如下所示:

ALTER TABLE table ADD CONSTRAINT CHECK (type IN ('type1',  'type2', 'type3'));

这似乎运作良好。现在我需要从一个 Perl 脚本连接到数据库,该脚本根据这些有效值检查用户输入。我当然可以在代码中检查它们并确保我的代码知道数据库需要的值是什么,但我想知道是否有任何方法可以让我的脚本查询数据库上的约束,因此如果我需要添加/删除稍后的有效输入我可以更改约束并且处理代码会适应。

任何建议将不胜感激。

4

1 回答 1

1

如果您将数据库访问封装在DBIx::Class模式中,您将获得这种“作为奖励”的验证。从预先存在的数据库生成模式的一种简单方法是通过 dbicdump

于 2012-12-10T01:41:09.463 回答