在sql场景中使用更新和插入查询时遇到问题

yzxexxkh  于 2021-06-21  发布在  Mysql
关注(0)|答案(3)|浏览(303)

在即将到来的技术面试中,我得到了一个示例sql问题。我很难理解如何解决这个问题。
客户的合同始于2018年4月4日,止于2029年1月1日。客户签署了一份条款变更的续约书,从2024年2月10日开始,到2045年11月11日结束。编写更新旧合同和插入新合同所需的查询。
我是否可以构造包含示例记录的简单db表,例如:clientid、contract、cstartdate、cenddate
然后将insert写入并更新查询?或者他们在这里寻找不同的东西?

aamkag61

aamkag611#

也许您可以创建一个包含contracid、clientid、cstartdate、cenddate、notes和status字段的表
通过这种方式,您只需将新的合同详细信息插入表中并更新“状态”字段,即可使当前处于活动状态的合同具有唯一的状态,例如,0->archived、1->active等。
或者,如果您希望不需要历史数据,那么可以省略status字段,只需使用clientid和contracid更新开始和结束日期(如果客户机有多个合同)

kjthegm6

kjthegm62#

我想你在找这样的问题,
更新表-->

UPDATE <YOUR_CONTRACT_TABLE> 
SET cStartDate = '2-10-2024', cEndDate= '11-11-2045'
WHERE id=<YOUR_CONTRACT_ID> ;

插入到表-->

INSERT INTO <YOUR_CONTRACT_TABLE> (id,clientID, contract, cStartDate, cEndDate)
VALUES (<YOUR_CONTRACT_ID>,<YOUR_CLIENT_ID>, <YOUR_CONTRACT_NAME>, '3-3-2026', '11-11-2039');
ua4mk5z4

ua4mk5z43#

如果不知道相关的表定义、relvar predicate 和业务规则,就无法有意义地回答这个问题。没有足够的信息。你可以猜测和做出假设(即定义你自己的表和规则),但如果这是问题的关键,它应该这么说。

相关问题