gpt4 book ai didi

mysql - 从临时表插入到另一个表

转载 作者:行者123 更新时间:2023-11-29 22:09:02 25 4
gpt4 key购买 nike

我希望将临时表中的数据添加到另一个表中,但它给了我重复值错误。我认为这是因为对于其他客户可能有相同的主键(statement_image_id是主键)或相同的客户但不同的贷款号具有相同的主键。

现在如何将这些数据添加到另一个表中。

我的临时表:

select top 0 * into #temptable from tab1 
INSERT INTO #temptable ([STATEMENT_IMAGE_ID]
,[client_no]
,[LOAN_NO]
,[statement_date]
,[ACCRUED_LATE_CHARGES]
,[TOTAL_DUE])

SELECT msp.[STATEMENT_IMAGE_ID] --as msp_ID
,[client_no]
,[LOAN_NO]
,[statement_date]
,[ACCRUED_LATE_CHARGES]
,[TOTAL_DUE]

FROM tab1 si, tab2 msp
WHERE msp.[client_no] = si.[client_no] and msp.[loan_no] = si.[loan_no]
and msp.[statement_date] = si.[statement_date]
and msp.[statement_image_id] <> si.[statement_image_id]

这就是我尝试过的。

首先是给出重复的错误,我认为其他是不允许的。

第一

 insert into tab1  select * from #temptable

第二

insert into tab1   select * from #temptable
where tab1.[client_no] =#temptable.client_no
and tab1.[loan_no]= #temptable.[loan_no]
and tab1.[statement_date] = #temptable.[STATEMENT_DATE]

请问有什么建议吗?

最佳答案

主键列中不能有重复\null值。

你可以做的一件事是,更新 tab1 以获得 tab1 和 #temptable 中相同的 STATEMENT_IMAGE_ID 值。

将数据插入到 tab1 中,以获得 tab1 和 #temptable 中不同的 STATEMENT_IMAGE_ID 值。

insert into tab1 (
select tmp.*
from #temptable tmp
join tab1 t on t.STATEMENT_IMAGE_ID != tmp.STATEMENT_IMAGE_ID
) as x

update tab1 t
join #temptable tmp on t.STATEMENT_IMAGE_ID == tmp.STATEMENT_IMAGE_ID
set
t.client_no = tmp.client_no,
t.LOAN_NO = tmp.LOAN_NO,
t.statement_date = tmp.statement_date,
t.ACCRUED_LATE_CHARGES = tmp.ACCRUED_LATE_CHARGES,
t.TOTAL_DUE = tmp.TOTAL_DUE;

注意:如果任何其他列具有唯一 约束,您也必须考虑这一点。

如果您无法丢失数据,则创建一个新的image_id

insert into tab1 (
select tmp.*
from #temptable tmp
join tab1 t on t.STATEMENT_IMAGE_ID != tmp.STATEMENT_IMAGE_ID
union all
select
UUID(),
tmp.client_no,
tmp.LOAN_NO,
tmp.statement_date,
tmp.ACCRUED_LATE_CHARGES,
tmp.TOTAL_DUE
from #temptable tmp
join tab1 t on t.STATEMENT_IMAGE_ID == tmp.STATEMENT_IMAGE_ID
) as x

注意:如果UUID()是您的选择..否则some_new_id

关于mysql - 从临时表插入到另一个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31873796/

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