少なくとも、バージョン5.0.51a-24 + lenny5(Debian)では、enumがMySQL内で壊れているようです。私は手順にEXACT同じコードを置けば、MySQLの手順の中でENUMの価値を得る方法
SELECT DNSType, CNameOrIP INTO @hackEnum, @ipAddress
FROM FrameworkServices WHERE FrameworkTypeId = 1 LIMIT 1;
SELECT @hackEnum, @ipAddress;
しかし:
CREATE TABLE `FrameworkServices` (
...
`DNSType` enum('IP','CNAME') NOT NULL,
...
)
アドホックが、私は問題なく次のことを実行することができます:私は、enumフィールドを含む単純なルックアップテーブルを持っています、@hackEnumは空を返します(少なくともTOADではnullではありません)。
私はDNSType + 0、CONCAT(DNSType、 '')を選択しようとしましたが、列挙型で有効であると思われるものはすべて同じです: すべての記事は随時読み込みますが、手順!
私は、ローカル変数を使用し、同じENUMタイプとしてhackEnumを定義しようとしました。
注:私はこの列挙型が気に入らないが、現在は継承されているコードのために生きなければならないので、ルックアップテーブルを使用するために列挙型を再入力することを推奨しないでください。 。 – iisystems
漠然としている可能性があります:代わりに '@hackEnum:= DNSType、@ipAddress:= CNameOrIp'を試してみてください。 –