我写了一个 MySQL 触发器,它会在插入新评论时更新产品的平均评分。但是,进行插入时会引发以下数据库异常Numeric value out of range
。
值进入的列设置为DECIMAL(1,1)
.
我已经设置了以下触发器,但仍然收到错误。
CREATE TRIGGER `update_products_average_rating` AFTER INSERT ON `reviews`
FOR EACH ROW UPDATE products
SET average_rating = ( SELECT CAST( AVG( rating ) AS DECIMAL( 1, 1 ) )
FROM reviews
WHERE product_id = products.id )
WHERE id = NEW.product_id;
我希望AS DECIMAL(1,1)
能解决问题,但事实并非如此。
我正在使用 MySQL 5.5。