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...;

应该返回 8col_x = 3的行。col_y = 5SELECT col_sum

我知道在查询本身中执行此操作非常简单,但在这种情况下,我试图在不重写大量现有代码的情况下修复项目中的错误。

我目前正在使用 MySQL 5.5。

(我试过用谷歌搜索这个,但到目前为止,我只是得到关于在我的查询中使用 UDF 的结果,这没有帮助。)

4

2 回答 2

3

你可以使用视图吗?

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

一种可能性是将原始表实际重命名为_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 回答