2012-01-24 8 views
2

一部の従来のテーブルをビューに置き換える必要があります。ビューで列の種類を指定する方法は? など。古いテーブルには列int(10) unsignedが含まれています。私の意見はint(11)に置き換えられ、cast(mycolumn as unsigned)int(11) unsignedに変換されます。しかし古い.net-applicationは型変換中にエラーを生成します(私はこのエラーを修正するために変更できません)。 どうすればいいですか?ビューの列のデータ型

答えて

1

既知のDB(oracle、mssql、mysql、postgres)のビュー列に対して手動でデータ型を指定する方法はありませんでした。これは、選択された実テーブルの列のデータ型に基づいて自動的に計算される。 CASTあなたのような場合。したがって、解決策はキャスティングを使用することです。

+0

私は理解していますが、Mysqlの標準的なキャストは、私が必要とすることを実行するのに十分な柔軟性がありません。ストアドプロシージャや別の方法で解決策があるかもしれません。 – maxs

0

ビューの列に必要な戻り値の型を持つ関数を定義します。関数で目的の値を計算します。ビュー列の型は、関数の戻り値の型とみなされます。

0

興味のある方へ: 私は "偽の"マテリアライズドビューを作成します。これははるかに速すぎます。そして、私は希望の列の種類を変更します。