1

我正在使用一个数据库来跟踪读者在书中的位置。我通过有一个页数列和一个当前页列来做到这一点。

有没有办法添加一个等于(currentpage/pagecount)的“进度”列?

4

2 回答 2

8

你有两个选择。您可以在以下位置创建该字段SELECT

SELECT book_id, user_id, (currentpage/pagecount) AS progress FROM user_books;

或者创建一个VIEW,这将允许您在不明确说明操作的情况下查询它:

CREATE VIEW user_books_progress AS
  (SELECT book_id, user_id, (currentpage/pagecount) AS progress FROM user_books);

然后您可以将您的视图作为普通表查询:

SELECT book_id, user_id, progress FROM user_books_progress;

有关算术运算符和视图的更多信息,请参阅文档:

11.5.1:算术运算符
12.1.12。创建视图语法

于 2009-08-04T00:06:15.183 回答
1

您不能将列定义为函数。至少有两种解决方法:

  • 使用 BEFORE UPDATE 触发器更新进度列,BEFORE INSERT 也需要一个。
  • 使用为您计算进度列的视图。
于 2009-08-04T00:06:30.753 回答