SQL 跨行同步列

发布于 2024-11-30 08:09:18 字数 165 浏览 1 评论 0原文

我发誓我记得学习如何执行此操作,但我不记得找到它的关键字,基本上,我希望表上有一列,当修改同一个表上的另一列时,该列会自动更新。我希望更新基本上是通过一个简短的 SQL 脚本根据同一个表中的其他值获得的值。

最大的问题是使其在对其获取值的列进行修改时自动更新,类似于 Excel 电子表格的更新方式。

I swear I remember learning how to do this, but I can't remember the keyword to find it, basically, I want to have a column on my table that automatically updates when another column, on the same table, is modified. I want the updating to basically be a value obtained through a short SQL script, based on other values in the same table.

The biggest problem is making it automatically update upon modifications to the columns it's value is obtained from, similar to how an Excel Spreadsheet would update.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

审判长 2024-12-07 08:09:18

首先使用计算列,然后如果计算列无法执行此操作,则使用触发器。就像本例中的 Age 列一样。

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

Use a COMPUTED COLUMN first, and then a trigger if a computed column can't do it. Like the Age column in this example.

CREATE TABLE MyTable(
    FirstName       VARCHAR(20),
    LastName        VARCHAR(20),
    DateOfBirth     DATETIME,
    Age         AS Cast(DateDiff("mm", DateOfBirth, GetDate())/12 AS INTEGER)
)
浪荡不羁 2024-12-07 08:09:18

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

Are you looking for the "trigger" keyword?
http://dev.mysql.com/doc/refman/5.0/en/create-trigger.html
It basically does what you described

紫瑟鸿黎 2024-12-07 08:09:18

您可能需要研究使用数据库触发器来完成此操作。不同的 RDBMS 有不同的创建方法,因此请检查 RDBMS 文档。

You may want to investigate using a Database Trigger to accomplish this. Different RDBMSes have different ways of creating them, so check your RDBMS documentation.

皓月长歌 2024-12-07 08:09:18

您可能正在考虑自引用外键

You may be thinking of a self-referencing foreign key

盗心人 2024-12-07 08:09:18

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

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,以确保值保持相同。

I believe you're looking for a database trigger.

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

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

(hopefully that gets you started, anyway! :) )

Essentially, you'll create a trigger for INSERT and UPDATE, to make sure the value is kept the same.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文