我如何在 sql 服务器(Mysql 或 PostgreSQL,EST)中像 Quickbase 一样在更新时运行公式?
How can I run a formula in a sql server (Mysql or PostgreSQL, EST) on update like Quickbase?
我有一个 PHP/MariaDB(MySQL) 程序,可以全天执行大量数学方程式。现在 PHP 正在为我做所有的数学计算并更新 mysql 数据库。我的这个程序正在增长很多,我需要一个更好的解决方案来运行这些 'equations/formulas'。我查看了存储过程和触发器,但发现 MySQL 两者都存在缺陷,而且它们非常耗时。我查看了 QuickBase 并且似乎喜欢他们设置它的位置但是我需要直接访问 SQL 数据库。
是否有好的解决方案可以在更新或插入时自动根据公式(其中有 IF、ELSE、CASE 语句)更新 SQL 数据库中的字段?如果需要,我愿意尝试一个新的数据库。我在网上看到 QuickBase 使用 Microsoft SQL 服务器,但没有找到与 MySQL 或 PortgreSQL 不同的解决方案。
感谢您的建议
您可以使用 Computed Columns
(MS SQL 服务器):
计算列是 table 中 is not physically stored
的 virtual column
,除非该列被标记为 PERSISTED
。计算列表达式 can use data from other columns to calculate
它所属列的值。
示例:
CREATE TABLE [dbo].[Table_Test]
(
[COL_A] INT NOT NULL,
[COL_C] INT NOT NULL,
[COL_B] as
CASE WHEN [COL_A]>[COL_C]
THEN 4
ELSE 0
END
)
我有一个 PHP/MariaDB(MySQL) 程序,可以全天执行大量数学方程式。现在 PHP 正在为我做所有的数学计算并更新 mysql 数据库。我的这个程序正在增长很多,我需要一个更好的解决方案来运行这些 'equations/formulas'。我查看了存储过程和触发器,但发现 MySQL 两者都存在缺陷,而且它们非常耗时。我查看了 QuickBase 并且似乎喜欢他们设置它的位置但是我需要直接访问 SQL 数据库。
是否有好的解决方案可以在更新或插入时自动根据公式(其中有 IF、ELSE、CASE 语句)更新 SQL 数据库中的字段?如果需要,我愿意尝试一个新的数据库。我在网上看到 QuickBase 使用 Microsoft SQL 服务器,但没有找到与 MySQL 或 PortgreSQL 不同的解决方案。
感谢您的建议
您可以使用 Computed Columns
(MS SQL 服务器):
计算列是 table 中
is not physically stored
的virtual column
,除非该列被标记为PERSISTED
。计算列表达式can use data from other columns to calculate
它所属列的值。 示例:CREATE TABLE [dbo].[Table_Test] ( [COL_A] INT NOT NULL, [COL_C] INT NOT NULL, [COL_B] as CASE WHEN [COL_A]>[COL_C] THEN 4 ELSE 0 END )