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

有没有办法添加等于(当前页/页数)的“进度”列?

有帮助吗?

解决方案

您有两种选择。您可以在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:算术运算符 < BR>    12.1.12。 CREATE VIEW语法

其他提示

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

  • 使用 BEFORE UPDATE 触发器更新进度列,您还需要一个 BEFORE INSERT 触发器。
  • 使用为您计算进度列的视图。
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top