跨行的SQL同步列

时间:2011-08-18 21:16:15

标签: sql sql-update sync

我发誓我记得学习如何做到这一点,但我记不清关键字要找到它,基本上,我希望我的表上有一个列,当同一个表上的另一列被修改时会自动更新。我希望更新基本上是一个通过短SQL脚本获得的值,基于同一个表中的其他值。

最大的问题是让它在修改到其值的列时自动更新,类似于Excel电子表格的更新方式。

5 个答案:

答案 0 :(得分:1)

首先使用 COMPUTED COLUMN ,如果计算列无法执行,则使用触发器。与此示例中的Age列一样。

CREATE TABLE MyTable(
    FirstName       VARCHAR(20),
    LastName        VARCHAR(20),
    DateOfBirth     DATETIME,
    Age         AS Cast(DateDiff("mm", DateOfBirth, GetDate())/12 AS INTEGER)
)

答案 1 :(得分:0)

您在寻找“触发器”关键字吗? http://dev.mysql.com/doc/refman/5.0/en/create-trigger.html 它基本上做你所描述的

答案 2 :(得分:0)

您可能希望使用Database Trigger进行调查以完成此操作。不同的RDBMS有不同的创建方式,因此请检查您的RDBMS文档。

答案 3 :(得分:0)

您可能正在考虑自我引用foreign key

答案 4 :(得分:0)

我相信你正在寻找数据库触发器。

MySQL:http://dev.mysql.com/doc/refman/5.0/en/triggers.html

Sql Server:http://msdn.microsoft.com/en-us/magazine/cc164047.aspx

(希望无论如何,这会让你开始!:))

基本上,您将为INSERT和UPDATE创建一个触发器,以确保该值保持不变。