0

MySQL 関数 (UDF) をテーブル内の列にバインドしたいと考えています。列は関数のエイリアスとして機能し、その値を返します。

疑似コードの例は、これを言葉よりもよく説明しているかもしれません。

TABLE example (
    ...
    col_x => int,
    col_y => int,
    col_sum => function() { return SUM(col_x + col_y}
);

私ができるようにしたいのは:

SELECT col_sum FROM example WHERE...;

col_x = 3および8 を返すcol_y = 5必要がある行。SELECT col_sum

クエリ自体でこれを行うのは非常に簡単であることはわかっていますが、この場合、多くの既存のコードを書き直すことなくプロジェクトのバグを修正しようとしています。

現在、MySQL 5.5 を使用しています。

(私はこれをグーグルで検索しようとしましたが、これまでのところ、クエリで UDF を使用することに関する結果を得ているだけで、役に立ちません。)

4

2 に答える 2

3

ビューを使用できますか?

create view v_table as
    select (colx + coly) as colsum, t.*
    from "table" t;

1 つの可能性は、実際に元のテーブルの名前を のような名前に変更してから_table、元のテーブル名でビューを作成することです。

rename table "table" to "_table";

create view "table" as
    select (colx + coly) as colsum, t.*
    from "_table" t;
于 2013-09-11T11:18:27.150 に答える
2

列とトリガーを追加して、挿入/更新時に列を埋めます。

于 2013-09-11T11:19:27.057 に答える