Guest User

Untitled

a guest
May 24th, 2018
150
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.90 KB | None | 0 0
  1. ERROR: ON CONFLICT DO UPDATE command cannot affect row a second time
  2. HINT: Ensure that no rows proposed for insertion within the same command have duplicate constrained values.
  3.  
  4. FOR rec IN SELECT inv_no, transactiontime, LEAD(transactiontime) OVER (PARTITION BY identification_number) AS leadtime, LAG(transactiontime) OVER (PARTITION BY identification_number) AS lagtime,
  5. transactiondate, trans_type, reasoncode, LEAD(reasoncode) OVER (PARTITION BY identification_number) AS leadcode, LAG(reasoncode) OVER (PARTITION BY identification_number) AS lagcode,
  6. identification_number, last_name, first_name, middle_name, suffix, house_number, housenumbersuffix, street_name, streettypecodename, direction, post_direction, apt_num,
  7. city, state, zip, address_line_1, address_line_2, address_line_3, locality_code, localityname, precinct_code_value, precinctname, townname_code_value, townname_code_name,
  8. townprec_code_value, townprec_code_name, cong_code_value, stsenate_code_value, sthouse_code_value, gender, dob, registration_date, effective_date, mailing_address_line_1,
  9. mailing_address_line_2, mailing_address_line_3, mailing_city, mailing_state, mailing_zip, superdist_code_value, superdist_code_name, mailing_address_use_residence, status,
  10. protected
  11. FROM current_working_trans LOOP
  12. code := rec.reasoncode;
  13. CASE
  14. WHEN ((rec.reasoncode = 'TRANSFER IN' AND rec.leadcode = 'TRANSFER OUT' AND (rec.leadtime::time < (rec.transactiontime::time + interval '1 minute')))
  15. OR (rec.reasoncode = 'CHANGE IN' AND rec.leadcode = 'CHANGE OUT' AND (rec.leadtime::time < (rec.transactiontime::time + interval '1 minute')))) THEN
  16. UPDATE test_va_new_voter
  17. SET (sourceid, lastname, firstname, middlename, namesuffix, reghousenum, reghousesfx, regstname, regsttype,
  18. regstpost, regunitnumber, regcity, regsta, regzip5, registrationaddr1, registrationaddr2, county_fips,
  19. jurisname, precinct, precinctname, cd_nextelection, sd_next_election, ld_nextelection, sex, birthyear,
  20. birthmonth, birthday, registrationdate, mailingaddr1, mailingaddr2, mailcity, mailsta, mailzip5, regstate) =
  21. (rec.identification_number, rec.last_name, rec.first_name, rec.middle_name, rec.suffix, rec.house_number, rec.housenumbersuffix,
  22. rec.street_name, rec.streettypecodename, rec.post_direction, rec.apt_num, rec.city, rec.state, rec.zip::int, rec.address_line_1, rec.address_line_2,
  23. rec.locality_code::int, rec.localityname, rec.precinct_code_value, rec.precinctname, rec.cong_code_value::int, rec.stsenate_code_value::int,
  24. rec.sthouse_code_value::int, rec.gender, EXTRACT(year FROM rec.dob), EXTRACT(month FROM dob), EXTRACT(day FROM rec.dob),
  25. rec.registration_date, rec.mailing_address_line_1, rec.mailing_address_line_2, rec.mailing_city, rec.mailing_state, LEFT(rec.mailing_zip, 5), 'VA')
  26. FROM current_working_trans WHERE rec.identification_number = sourceid;
  27.  
  28. DELETE FROM current_working_trans WHERE rec.transactiontime = transactiontime AND nvrareasoncode = rec.reasoncode;
  29. DELETE FROM current_working_trans WHERE rec.leadtime = transactiontime AND rec.leadcode = reasoncode;
  30.  
  31. WHEN code IN('NEW','REACTIVATE','REINSTATE', 'TRANSFER IN', 'CHANGE IN') THEN
  32. INSERT INTO test_voter
  33. (sourceid, lastname, firstname, middlename, namesuffix, reghousenum, reghousesfx, regstname, regsttype,
  34. regstpost, regunitnumber, regcity, regsta, regzip5, registrationaddr1, registrationaddr2, county_fips,
  35. jurisname, precinct, precinctname, cd_nextelection, sd_next_election, ld_nextelection, sex, birthyear,
  36. birthmonth, birthday, registrationdate, mailingaddr1, mailingaddr2, mailcity, mailsta, mailzip5, regstate)
  37. SELECT rec.identification_number, rec.last_name, rec.first_name, rec.middle_name, rec.suffix, rec.house_number, rec.housenumbersuffix,
  38. rec.street_name, rec.streettypecodename, rec.post_direction, rec.apt_num, rec.city, rec.state, rec.zip::int, rec.address_line_1, rec.address_line_2,
  39. rec.locality_code::int, rec.localityname, rec.precinct_code_value, rec.precinctname, rec.cong_code_value::int, rec.stsenate_code_value::int,
  40. rec.sthouse_code_value::int, rec.gender, EXTRACT(year FROM rec.dob), EXTRACT(month FROM dob), EXTRACT(day FROM rec.dob),
  41. rec.registration_date, rec.mailing_address_line_1, rec.mailing_address_line_2, rec.mailing_city, rec.mailing_state, LEFT(rec.mailing_zip, 5), 'VA'
  42. FROM current_working_trans
  43. ON CONFLICT (sourceid)
  44. DO UPDATE
  45. SET (lastname, firstname, middlename, namesuffix, reghousenum, reghousesfx, regstname, regsttype,
  46. regstpost, regunitnumber, regcity, regsta, regzip5, registrationaddr1, registrationaddr2, county_fips,
  47. jurisname, precinct, precinctname, cd_nextelection, sd_next_election, ld_nextelection, sex, birthyear,
  48. birthmonth, birthday, registrationdate, mailingaddr1, mailingaddr2, mailcity, mailsta, mailzip5, regstate) =
  49. (SELECT rec.last_name, rec.first_name, rec.middle_name, rec.suffix, rec.house_number, rec.housenumbersuffix,
  50. rec.street_name, rec.streettypecodename, rec.post_direction, rec.apt_num, rec.city, rec.state, rec.zip::int, rec.address_line_1, rec.address_line_2,
  51. rec.locality_code::int, rec.localityname, rec.precinct_code_value, rec.precinctname, rec.cong_code_value::int, rec.stsenate_code_value::int,
  52. rec.sthouse_code_value::int, rec.gender, EXTRACT(year FROM rec.dob), EXTRACT(month FROM rec.dob), EXTRACT(day FROM rec.dob),
  53. rec.registration_date, rec.mailing_address_line_1, rec.mailing_address_line_2, rec.mailing_city, rec.mailing_state, LEFT(rec.mailing_zip, 5), 'VA');
  54. DELETE FROM current_working_trans WHERE reasoncode = rec.nvrareasoncode AND transactiontime = rec.transactiontime;
  55. END CASE;
  56. END LOOP;
  57.  
  58. FOR rec IN SELECT *
  59. FROM current_working_trans LOOP
  60. code := rec.reasoncode;
  61. CASE
  62. WHEN code IN('NEW','REACTIVATE','REINSTATE', 'TRANSFER IN', 'CHANGE IN') THEN
  63. INSERT INTO test_voter
  64. (sourceid, lastname, firstname, middlename, namesuffix, reghousenum, reghousesfx, regstname, regsttype,
  65. regstpost, regunitnumber, regcity, regsta, regzip5, registrationaddr1, registrationaddr2, county_fips,
  66. jurisname, precinct, precinctname, cd_nextelection, sd_next_election, ld_nextelection, sex, birthyear,
  67. birthmonth, birthday, registrationdate, mailingaddr1, mailingaddr2, mailcity, mailsta, mailzip5, regstate)
  68. SELECT rec.identification_number, rec.last_name, rec.first_name, rec.middle_name, rec.suffix, rec.house_number, rec.housenumbersuffix,
  69. rec.street_name, rec.streettypecodename, rec.post_direction, rec.apt_num, rec.city, rec.state, rec.zip::int, rec.address_line_1, rec.address_line_2,
  70. rec.locality_code::int, rec.localityname, rec.precinct_code_value, rec.precinctname, rec.cong_code_value::int, rec.stsenate_code_value::int,
  71. rec.sthouse_code_value::int, rec.gender, EXTRACT(year FROM rec.dob), EXTRACT(month FROM dob), EXTRACT(day FROM rec.dob),
  72. rec.registration_date, rec.mailing_address_line_1, rec.mailing_address_line_2, rec.mailing_city, rec.mailing_state, LEFT(rec.mailing_zip, 5), 'VA'
  73. FROM current_working_trans
  74. ON CONFLICT (sourceid)
  75. DO UPDATE
  76. SET (lastname, firstname, middlename, namesuffix, reghousenum, reghousesfx, regstname, regsttype,
  77. regstpost, regunitnumber, regcity, regsta, regzip5, registrationaddr1, registrationaddr2, county_fips,
  78. jurisname, precinct, precinctname, cd_nextelection, sd_next_election, ld_nextelection, sex, birthyear,
  79. birthmonth, birthday, registrationdate, mailingaddr1, mailingaddr2, mailcity, mailsta, mailzip5, regstate) =
  80. (SELECT rec.last_name, rec.first_name, rec.middle_name, rec.suffix, rec.house_number, rec.housenumbersuffix,
  81. rec.street_name, rec.streettypecodename, rec.post_direction, rec.apt_num, rec.city, rec.state, rec.zip::int, rec.address_line_1, rec.address_line_2,
  82. rec.locality_code::int, rec.localityname, rec.precinct_code_value, rec.precinctname, rec.cong_code_value::int, rec.stsenate_code_value::int,
  83. rec.sthouse_code_value::int, rec.gender, EXTRACT(year FROM rec.dob), EXTRACT(month FROM rec.dob), EXTRACT(day FROM rec.dob),
  84. rec.registration_date, rec.mailing_address_line_1, rec.mailing_address_line_2, rec.mailing_city, rec.mailing_state, LEFT(rec.mailing_zip, 5), 'VA');
  85. DELETE FROM current_working_trans WHERE reasoncode = rec.nvrareasoncode AND transactiontime = rec.transactiontime;
  86. END CASE;
  87. END LOOP;
Add Comment
Please, Sign In to add comment