Подход ::: 1:
Если вы можете написать «IF and LOOP», то вы можете попробовать этот подход.
select count(1) as cnt
from yourtable
where hk='new_value';
if (cnt=0){
---your insert query will be here
}else {
--some message... "hk" already present in table.
}
Approach ::: 2:
INSERT INTO your_table_name
(hk, diagnosisid, id, cdcode)
SELECT 'asdf' as hk,
'asdf' as diagnosisid,
'ss' as id,
'ddww' as cdcode
WHERE 'asdf'
NOT IN (SELECT hk FROM your_table_name)
Подход ::: 3:
Тогда, наконец, вам нужно написать скрипт ETL для выполнения действий.
Решение:
В вашем сценарии: (согласно таблице, приведенной в комментариях) Запрос будет:
create table pid1(hk string,diagnosisid string,id string,cdcode string);
insert into pid1 values('EXVWLOORV@#19690321F','1','7810','I9C');
insert into pid1 values('OHQQDUG@#19380630F','1','3643','I9C');
insert into pid1 values('VPLWK@#19610120F','1','2731','I9C');
create table pid as select * from pid1 limit 1;
INSERT INTO pid
(hk, diagnosisid, id, cdcode)
SELECT hk,
diagnosisid,
id,
cdcode
from pid1
WHERE hk NOT IN (SELECT hk FROM pid);
Всего наилучшего !!!