2009-08-04 13 views

Répondre

8

Vous avez deux options. Vous pouvez créer ce champ sur SELECT:

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

Ou créer un VIEW, qui vous permettra de l'interroger sans indiquer explicitement l'opération:

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

Ensuite, vous pouvez simplement interroger votre point de vue en tant que table normale:

SELECT book_id, user_id, progress FROM user_books_progress; 

Plus d'informations sur les opérateurs arithmétiques et les vues sont disponibles dans la documentation:

11.5.1: Arithmetic Operators
12.1.12. CREATE VIEW Syntax

+0

Juste ce dont j'avais besoin, merci! – samoz

1

Vous ne pouvez pas définir une colonne à une fonction. Mettez à jour au moins deux solutions de contournement:

  • Mettez à jour votre colonne de progression à l'aide d'un déclencheur BEFORE UPDATE, vous en aurez également besoin pour BEFORE INSERT.
  • Utilisez une vue qui calcule la colonne de progression pour vous.