insert only when not exists (USE TABLE DUAL)
insert into geo_city(ID, GEONAMES_ID, NAME, COUNTRY_CODE, MODIFICATION_DATE) select GEO_CITY_SEQUENCE.nextval,'TSITT104IT',' Santomato-Pistoia PT ','IT',to_date('2011-11-23','yyyy-mm-dd') FROM DUAL WHERE NOT EXISTS( SELECT * FROM geo_city WHERE GEONAMES_ID = 'TSITT104IT');