SQL触发器:在更新主键时,如何确定哪个“删除”记录对应于哪个“插入”记录?

2024-02-27

假设我知道更新主键是不好的。

还有其他问题表明inserted and updated表记录按位置匹配(第一个匹配另一个的第一个。)这是事实还是巧合?

当更新时主键发生变化时,是否有任何东西可以将两个表连接在一起?


no插入+删除的虚拟表行位置的匹配。

不,你不能匹配行

一些选项:

  • 还有另一个唯一不变的(对于该更新)键来链接行
  • 限制为单行操作。
  • 使用带有 OUTPUT 子句的存储过程来捕获键之前和之后
  • 带 OUTPUT 子句的 INSTEAD OF 触发器(TBH 不确定是否可以执行此操作)
  • 禁止主键更新(在评论后添加)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SQL触发器:在更新主键时,如何确定哪个“删除”记录对应于哪个“插入”记录? 的相关文章

  • SQL Server 用分隔符分割字符串

    我有一个输入字符串 100 2 3 101 2 1 103 2 3 我想解析它并将其添加到具有 3 列的表中 因此它应该是 f x col1 col2 col3 100 2 3 类似的其他数据以逗号分隔作为记录和 作为列 Thanks ni
  • 如何将可视选择的文本通过管道传输到 UNIX 命令并将输出附加到 Vim 中的当前缓冲区

    使用 Vim 我尝试将在可视模式下选择的文本通过管道传输到 UNIX 命令 并将输出附加到当前文件的末尾 例如 假设我们有一个 SQL 命令 例如 SELECT FROM mytable 我想做如下的事情
  • 正则表达式 '?' 的类似物(前一项可选)在T-SQL中像什么?

    我想知道 是否可以翻译包含 的正则表达式 前面的项目可选 在 T SQL LIKE 模式中 DB 端无需任何操作 例如 31 4 我可以将其分成几个子句 但如果正则表达式包含很多 这不太方便 LIKE不使用正则表达式 并且它使用的模式语言没
  • 如何在使用连接池时强制 SqlConnection 物理关闭?

    我明白 如果我实例化一个 SqlConnection 对象 我实际上是从连接池中获取一个连接 当我调用 Open 时 它将打开连接 如果我对该 SqlConnection 对象调用 Close 或 Dispose 方法 它将返回到连接池 但
  • 将 UUID 存储为 base64 字符串

    我一直在尝试使用 UUID 作为数据库键 我希望占用尽可能少的字节数 同时仍然保持 UUID 表示形式的可读性 我认为我已经使用 base64 将其减少到 22 个字节 并删除了一些尾随的 这些 对于我的目的来说似乎没有必要存储 这种方法有
  • SQL 删除表并重新创建并保留数据

    在我们最初的设计中 我们搞砸了表中的外键约束 现在表已充满数据 我们无法在不删除表中所有记录的情况下更改它 我能想到的唯一解决方案是创建一个备份表并将所有记录放在那里 然后删除所有记录 更改表并开始将它们添加回来 还有其他 更好 的想法吗
  • 使用 JSON 参数的 Postgres 批量 INSERT 函数

    这是一个plpgsqlpostgres 的函数9 6 它试图INSERT一行 如果插入没有失败 由于违反键约束 那么它会运行更多命令 CREATE FUNCTION foo int text text RETURNS void AS BEG
  • 在一个数据访问层中处理多个连接字符串

    我有一个有趣的困境 我目前有一个数据访问层 它必须与多个域一起使用 并且每个域都有多个数据库存储库 具体取决于所调用的存储过程 目前 我只需使用 SWITCH 语句来确定应用程序正在运行的计算机 并从 Web config 返回适当的连接字
  • 如何从 PostgreSQL 中的时间戳列值提取一天中的时间(或小时)?

    我正在尝试从 PostgreSQL 中的 时间戳 列中提取一天中的时间 这是我的做法 但是 太糟糕了 知道如何做得更好吗 SELECT date part hour date demande text hours date part min
  • Laravel leftJoin 仅右表的最后一条记录

    我是 Laravel 的新手 我有两张桌子 1 产品 2 价格 products id product int p key name varchar prices id price int p key id product int
  • 对多个数据库执行 SQL 查询

    我知道我的帖子与该论坛中的其他帖子的标题非常相似 但我真的找不到我需要的答案 这是我的问题 我的 Windows Server 上运行着 SQL Server 在我的 SQL Server 中 我有大约 30 个数据库 它们都具有相同的表和
  • MySQL 按重复项从上到下排序

    我有一个lammer问题 因为我不是mysql专业人士 我有类似的字段 id color 1 red 2 green 3 yellow 4 green 5 green 6 red 我想按重复项进行分组 最常见的重复项先进行分组 所以应该这样
  • Oracle:如何确定“AFTER ALTER”触发器中对象的新名称?

    假设我有一个AFTER ALTER在我的 Oracle 数据库上触发并重命名一些数据库对象 ALTER RENAME TO 在触发器中 我如何确定new数据库对象的名称 看来ORA DICT OBJ OWNER ORA DICT OBJ N
  • 内连接不重复,可以吗?

    鉴于这两个表 表 A1 有两行具有相同的值 a A1 a a 表 A2 有两行主键值为 A B 它们与 a 关联 A2 PK col2 A a B a 我想要的是 A1 和 A2 的连接并得到这个结果 a A a B 显然内连接在这里不起作
  • 在 C#.NET 应用程序中使用 SQL Server 时间数据类型?

    如何使用 SQLtimeSQL Server 2008 中 C NET 中引入的数据类型 我一直在努力让它发挥作用 但没有成功 这是一个MSDN 文章 http msdn microsoft com en us library bb6751
  • 为什么我可以像调用实例方法一样调用类方法?

    我正在查看这个例子 class SQLObject def self columns return columns if columns columns DBConnection execute2 lt lt SQL first SELEC
  • 在 SQL 2005+ 中,CLR 存储过程是否优于 TSQL 存储过程?

    我目前的观点是否定的 更喜欢 Transact SQL 存储过程 因为它们是重量更轻且 可能 性能更高的选项 而 CLR 过程允许开发人员进行各种恶作剧 然而最近我需要调试一些写得非常糟糕的 TSQL 存储过程 像往常一样 我发现许多问题是
  • Google BQ:运行参数化查询,其中参数变量是 BQ 表目标

    我正在尝试从 Linux 命令行为 BQ 表目标运行 SQL 此 SQL 脚本将用于多个日期 客户端和 BQ 表目标 因此这需要在我的 BQ API 命令行调用中使用参数 标志 parameter 现在 我已经点击此链接来了解参数化查询 h
  • 使用间隔阈值对不同的连续时间戳记录进行分组

    我有一系列间歇性间隔的带有时间戳的 GPS 坐标 我正在使用 PostGIS 将它们渲染到地图画布上 为了渲染它们 需要使用 PostGIS 中的 ST MakeLine 聚合函数将点聚合成线 从而在地图上留下 GPS 数据丢失的间隙 数据
  • SQL Server 上的语法错误

    这可能是一个愚蠢的语法错误 但我只是继续阅读我的程序 但我无法弄清楚我的错误在哪里 消息 156 第 15 级 状态 1 第 41 行关键字附近的语法不正确 为了 这是我的代码 alter procedure LockReservation

随机推荐

  • 确定 WPF 窗口中谁拥有焦点

    我们正在使用 WPF 并有一个从 DockingLibrary 派生的窗口 该窗口有一个网格 其中包含多个项目 其中一个是 WPF 数据网格 我们使用 M V VM 模式 创建并显示此窗口时 不会选择此数据网格中的任何行 我们可以通过执行以
  • 视图在 RotationY 动画接近结束时消失

    我正在尝试制作一个流畅的动画 其中占据大部分屏幕空间的视图旋转以显示背面的另一个视图 rotatingView animate rotationY 90 setDuration 250 setInterpolator new Acceler
  • Facebook 对话框失败并出现错误:操作无法完成。 (NSURLErrorDomain错误-999。)

    我正在使用适用于 ios 的 facebook api 并且我正在使用 facebook 对话框来发帖 基本思想是 我有一个发布按钮 它调用一个方法并询问您是否已登录以立即发布或执行登录然后发布 当第二种情况发生时 我无法在登录 Faceb
  • 检测我的网站上添加恶意软件的广告

    我最近在我的网站上做了一种 公共服务公告 告诉人们网站上只有一个广告 并且它被整齐地放置在网站的设计中 我这样做是因为有人报告该网站 无法正常工作 当被要求提供问题的屏幕截图时 我向我提供了以下信息 充满广告的屏幕截图http ezimba
  • 如何在 Amplify 控制台的配置步骤中更改节点版本

    我面临的问题是无法通过 AWS Amplify 控制台构建我的 Angular 应用程序 您正在运行 Node js v8 12 0 版本 Angular CLI 8 0 不支持该版本 支持的官方 Node js 版本为 10 9 或更高版
  • NDK 调试:ndk-gdb 无法拉取 app_process。谁以及何时创建 app_process 二进制文件?

    在调查本机代码中命中断点的问题时 我决定检查 ndk gdb 是否工作正常 我已经删除了app process 开始Java调试并运行ndk gdb force 你猜怎么着 app process 没有创建 ndk gdb verbose输
  • 将 2 个数组合并并交替为单个数组

    我具有初学者的脚本编写技能 并且正在使用 JavaScript 的一种形式 ECMA 262 该形式可以在名为 Opus Pro Digital Workshop 英国 的程序中找到 我一直在网上搜索 但没有成功 找到一种将两个数组中的数字
  • 为什么在云上训练时出现“IndexError:列表索引超出范围”?

    我求助于使用云培训工作流程 鉴于我得到的产品 我本希望直接放入与其他 tflite 模型一起使用的代码中 但云生成的模型不起作用 询问时我得到 索引超出范围 interpreter get tensor参数 这是我的代码 基本上是一个修改后
  • Reactjs 表单:使用两个提交按钮为同一表单执行两个不同的任务

    我想要我的表单有两个提交按钮 两者都将使用相同的输入和表单验证 但会执行不同的任务 export default function Formtwosubmits function handlesubmit task1 function ha
  • 如何授予 godaddy 服务器虚拟主机上的文件访问权限?

    我在 godaddy 服务器上托管我的 net Web 服务 我已授予文件夹读 写权限 但它不提供对任何文件的授予权限 因此 当我尝试将任何文件从我的网络服务上传到服务器时 它会给我一个错误 You dont have rights to
  • 在 Flutter 中请求位置时,BLoC 不会产生状态

    我使用三个 Flutter 包来实现一项功能 用户可以通过拉动来刷新 使用 BLoC 逻辑检索地理坐标并将其传递回 Flutter 拉动刷新 https pub dev packages pull to refresh BLoC https
  • Google Play 中具有相同名称但包名称不同的新应用

    我想上传另一个 apk 其应用程序标题与我已有的应用程序标题相同 尚未发布 我收到 您需要为您的应用选择不同的标题 这个已经是 com foo bar 的标题 我以为只要包名不同就可以上传新的apk 有没有办法做到这一点 或者我必须创建另一
  • 自动化 NIFI 模板部署

    我是 nifi 的新手 我试图了解 因为它看起来很多基于 GUI 是否有一种方法可以在 Nifi 上自动扩展和缩减 以及如何采用 xml Nifi 模板并将其部署到集群 本质上 我们想做的是使用 Nifi 从 kafka 服务器收集 JMX
  • 更改 GitHub 上的存储库语言

    我注意到 Github 选择 JavaScript 作为我的 Django 应用程序的语言 可以改成Python吗 或者我需要创建一个新的存储库吗 Solved 正如 Geno Chen 所说 要更改存储库语言 我们必须添加包含以下代码的文
  • 为什么无法从具有 PAGE_GUARD 保护的块中读取数据?

    我使用 ReadProcessMemory 函数从地址空间读取数据 我尝试读取所有具有 MEM PRIVATE 类型的块 但是当该块具有 PAGE GUARD 保护时 我收到错误 函数返回 0 为什么 谢谢大家 具有 PAGE GUARD
  • 不同 PostgreSQL 服务器上提取纪元的不同结果

    我们将时间戳转换为纪元 对它们进行一些数学计算 然后将它们转换回时间戳 数据库中的所有时间都是TIMESTAMP WITHOUT TIME ZONE 由于在英国 切换到夏令时的时间在一台服务器上关闭了一个小时 而在另一台服务器上则没有 所以
  • 在 Linux 上安装 Freeglut

    我正在尝试在运行 Linux Mint 的计算机上安装 freeglut 我按照该网站上的步骤操作 http freeglut sourceforge net docs install php http freeglut sourcefor
  • 确定堆上对象的对象分配发生的位置

    是否有任何工具可以从正在运行的应用程序获取堆转储并根据源代码中创建对象的位置确定 分组对象 无需更改源代码 并且最好是免费的 例如 ANTS 的 NET Memory Profiler 怎么样 也许 CLR 探查器
  • 如何在自动热键中连接数字和字符串

    我有以下自动热键脚本 A 5 B 7 C A B MsgBox C 第三行不起作用 我期待 57 的输出 我已经尝试过以下方法 C A B C A B C A B C A B C A B 哪个都不起作用 谁能告诉我该怎么做 我使用的是1 1
  • SQL触发器:在更新主键时,如何确定哪个“删除”记录对应于哪个“插入”记录?

    假设我知道更新主键是不好的 还有其他问题表明inserted and updated表记录按位置匹配 第一个匹配另一个的第一个 这是事实还是巧合 当更新时主键发生变化时 是否有任何东西可以将两个表连接在一起 有no插入 删除的虚拟表行位置的