gpt4 book ai didi

javascript - 在 Node JS 或 PHP 中为 MSSQL 编写更改监听器

转载 作者:太空宇宙 更新时间:2023-11-04 01:04:53 25 4
gpt4 key购买 nike

我正在尝试编写一个基于 NodeJS 或 PHP 的更改监听器。我们在 MSSQL 服务器上有一个巨大的数据库。我希望更改监听器监听数据库中的更改,例如数据库中的特定列更改,并且更改监听器获取已修改的特定行的信息,然后对其执行操作。我并不是想为用户制作实时应用程序。我只是想在远程数据库中记录一个本地数据库的更改,并且我需要在 NodeJS 或 PHP 中执行此操作。您可以在下面看到我发布的图片。

/image/c3jD6.png

我完全理解的部分

我知道我能做的就是每隔 x 时间向数据库发出一次请求。我可以使用套接字或长轮询等。(注意:如果我错了,请纠正我)

我不明白的部分

如何才能仅获取已通过 sql 查询修改的特定行? (注意:我只能从该数据库获取数据,我无法修改数据库中的任何内容)。数据库太大了,我不会一次又一次地获取所有行。我对此不知道。

注意我不做任何复制。我实际上正在做的是监视 SQL Server 中的列是否发生更改,并根据该更改在远程数据库中执行某些操作。

最佳答案

您实际上无法检测到更改。只有 SQL Server 可以跟踪更改,并且它通过 Change Tracking 公开此跟踪。或Change Data Capture 。您的应用程序与所使用的访问技术(C#、C++、Node.js、ruby 或其他技术)完全无关,然后可以询问更改跟踪基础设施并了解自上次检查以来哪些行发生了更改。不要尝试推出您自己内部开发的变更跟踪机制,无论是通过触发器还是“changed_at”列或其他方式。为了避免头痛,许多勇敢者放弃了尝试。使用内置的现成技术来完成此任务(上面链接)。

你说“我无法修改数据库中的任何内容”,那么答案很简单:你正在做 fool's errand 。不可能在不更改数据库的情况下检测更改,就这么简单(比较方法不需要适用于任何显着的大小)。如果他们不允许您更改数据库(并启用其中一种更改跟踪方法),那么只需转到另一个项目即可。

关于javascript - 在 Node JS 或 PHP 中为 MSSQL 编写更改监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24043880/

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