sql - 使用单个查询(SQL Server)插入第一个表并更新第二个表中的记录
问题描述
我有两个表 table1 和 table2。
表 1 以 id 和 cardId 为列,表 2 以 cardId 和 UserId 为列
我想要一个查询,它将在 table1 中插入记录,然后根据 cardId 在 table2 中更新 UserId
解决方案
当第一个表中发生插入时,您可以使用触发器来更新第二个表中的行。由于不清楚第二列中的 userId 必须设置为以下触发器使用 USER() 函数,因此可以根据需要进行更改。
数据设置
Insert into Table2 (cardId, userId) values (1,null)
扳机
Create trigger update_user after insert on Table1
For each row
Update Table2 set userId = USER() WHERE cardId = NEW.cardId
测试数据
Insert into Table1 (id, cardId) values(1,1)
在执行上面的测试数据插入时,userId
列中的列Table2
将被设置为函数userId
返回的USER()
推荐阅读
- c# - 使用 Masstransit 在 RabbitMq 中订阅时无法覆盖交换名称
- python - 在python中,可以实例化一个抽象类吗?
- python - 如何对分离的 CSV 进行排序?逗号在错误的地方,10k 行
- angular - 加载 ngFor 后的 Angular onLoad 事件
- gradle - gradle中的命名结构是什么?
- perl - 数组推送和引用
- bash - Eclipse `Bash Editor` 插件设置以在 MacO 上启动调试
- python - ValueError:无法将大小为 261715968 的数组重塑为形状 (9466,9216)
- hash - 块哈希生成的动态和添加到比特币交易中使用的块链
- django - / 'dict' 对象的 AttributeError 没有属性 '_mptt_meta'