在我看来,枚举在 MySQL 中被破坏了,至少在版本 5.0.51a-24+lenny5 (Debian) 上。我有一个简单的查找表,其中包含一个枚举字段:
CREATE TABLE `FrameworkServices` (
...
`DNSType` enum('IP','CNAME') NOT NULL,
...
)
特设,我可以毫无问题地运行以下内容:
SELECT DNSType, CNameOrIP INTO @hackEnum, @ipAddress
FROM FrameworkServices WHERE FrameworkTypeId = 1 LIMIT 1;
SELECT @hackEnum, @ipAddress;
但是,如果我将完全相同的代码放入过程中,@hackEnum 将返回空(不为空,至少通过 TOAD)。
我尝试选择 DNSType+0、CONCAT(DNSType,'') 和其他所有在枚举上似乎有效的东西,结果是一样的:我阅读的每篇文章都是临时工作的,但在过程中返回空!
我什至尝试过使用局部变量并将 hackEnum 定义为相同的 ENUM 类型。