gpt4 book ai didi

mysql - 如何从其他列(带有触发器)中创建计算列?

转载 作者:行者123 更新时间:2023-11-29 15:36:35 25 4
gpt4 key购买 nike

我正在尝试一个为预算制作食品营养数据库的项目。

这些是我的表“产品”中的一些列:脂肪、碳水化合物、膳食纤维、蛋白质(和)、千焦耳、卡路里。 (其价格为 100 克)

我的目标是让脂肪、碳水化合物、膳食纤维和蛋白质决定和更新千焦耳和卡路里。我相信如果我必须在 MySQL 和 PHPMyAdmin 中执行此操作,我必须使用触发器?我怎样才能做到这一点?

到目前为止,我一直在根据我制作的 PHP-Html 表单中插入的值来创建值。

我使用了这些近似计算:

$kilojoulespr100g = round(($carbs+$protein)*17+$fat*37+$dietary_fibre*8, 0);

$caloriespr100g = round($kilojoulespr100g*0.239005736, 0);

我希望我能够不用担心“千焦耳”和“卡路里”列会根据脂肪、碳水化合物、膳食纤维和蛋白质的量进行相应更新,这样,如果脂肪、碳水化合物、蛋白质或膳食纤维发生变化。

最佳答案

假设这些列被命名为碳水化合物、蛋白质、脂肪、膳食纤维、千焦耳 pr100g 和卡路里 pr100g,您可以使用以下触发器 -

CREATE DEFINER=`root`@`localhost` TRIGGER `trigger_name` BEFORE INSERT ON `test_nutrition` FOR EACH ROW BEGIN
SET new.kilojoulespr100g = round( (new.carbs + new.protein) * 17 + (new.fat * 37) + new.dietary_fiber * 7 );
SET new.caloriespr100g = round( new.kilojoulespr100g * 0.239005736 );
END

您可以省略 round 函数中的第二个参数,因为它是可选的,并且默认值为 0。

关于mysql - 如何从其他列(带有触发器)中创建计算列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58186467/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com