题
我正在使用一个数据库来跟踪读者在书中的位置。我通过页数列和当前页列来做到这一点。
有没有办法添加等于(当前页/页数)的“进度”列?
解决方案
您有两种选择。您可以在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;
约算术运算符和视图的详细信息的文档中是可用的:
其他提示
您不能将列定义为函数。至少有两种解决方法:
- 使用 BEFORE UPDATE 触发器更新进度列,您还需要一个 BEFORE INSERT 触发器。
- 使用为您计算进度列的视图。
不隶属于 StackOverflow