***但是我检查了“架构”。“UTILISATEUR”。“ID_PERSONNE”不是空的!! 每条记录都已填写。
查询下方:
UPDATE schema.utilisateur
SET schema.utilisateur.ID_Personne = (select testtable.New_ID_Personne
from testtable
where TESTTABLE.Login = schema.utilisateur.Login
and testtable.New_id_personne is not null)
答案 0 :(得分:2)
这可能是由于login
表格中schema.utilisateur
位testtable
中没有new_id_personne
,这意味着相应的where
会是空的。您需要在update
语句中添加testtable
子句,以确保您只更新UPDATE schema.utilisateur su
SET su.ID_Personne = (select testtable.New_ID_Personne
from testtable tt1
where tt1.Login = su.Login
and tt1.New_id_personne is not null)
where exists (select null
from testtable tt2
where tt2.Login = su.Login
and tt2.New_id_personne is not null);
中存在的行,例如:
merge
或者您可以将其转换为merge into schema.utilisateur tgt
using (select testtable.New_ID_Personne
from testtable tt
where tt1.New_id_personne is not null) src
on (tgt.login = src.login)
when matched then
update set tgt.id_personne = src.new_id_personne;
语句,例如:
{{1}}