我已經編寫了一個MySQL觸發器,它在插入新評論時更新產品的平均評分。但是,插入時發生以下數據庫異常Numeric value out of range
。嘗試在MySQL觸發器中創建DECIMAL(1,1)
值進入的列被設置爲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。
平均評分將只會在1和5之間。因此'DECIMAL(1,1)' – diggersworld
@diggersworld然後只需使用INT(可能小int )和你的問題將得到解決。 – miyasudokoro
但我想允許1和5之間的分數,即3.4,2.6,4.8。接受 – diggersworld