μ²μ²νμ¬ νλ‘μ νΈλ₯Ό μ§ννλ μ€ λ€μκ³Ό κ°μ μλ¬κ° λ°μνμ΅λλ€.
ERROR: duplicate key value violates unique constraint "student_courses_pkey"
Detail: Key (id)=(1646) already exists.
Transaction silently rolled back because it has been marked as rollback-only
μ νλ‘μ νΈμμλ StudentCourse
μν°ν°κ° λ€μκ³Ό κ°μ΄ μ€μ λμ΄ μμ΅λλ€.
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
μ¦, id
λ DBμμ μλ μ¦κ°(μνμ€) λ°©μμΌλ‘ μμ±λ©λλ€.
κ·Έλ°λ°λ id
κ° μ€λ³΅λλ©΄μ μλ¬κ° λ°μνμ΅λλ€.
idλ μλ μ¦κ°(μνμ€) μ€μ μ΄κΈ° λλ¬Έμ μ€λ³΅ ν€κ° μκΈΈ μ΄μ κ° μλ€κ³ μκ°νμ΅λλ€. κ·Έλ¬λ, DB λ°μ΄ν°λ₯Ό νμΈν΄λ³΄λ μ€λ³΅ key κ°μΈ 1646
μ ν΄λΉνλ StudentCourse λ μ½λκ° μ‘΄μ¬νλ κ²μ νμΈνμ΅λλ€.
μμΈμ μλμΌλ‘ CSV λ°μ΄ν°λ₯Ό μ½μ ν κ²μ΄μμ΅λλ€.
PostgreSQLμ μλ μ¦κ°λ₯Ό μν΄ λ΄λΆμ μΌλ‘ μνμ€λ₯Ό κ΄λ¦¬ν©λλ€.
μλ₯Ό λ€μ΄ student_courses
ν
μ΄λΈμ κΈ°λ³Έν€ μνμ€λ student_courses_id_seq
μ
λλ€.
νμ§λ§ CSVλ SQLλ‘ id κ°μ μ§μ μ§μ ν΄μ insertνλ©΄, μνμ€λ κ·Έ μ¬μ€μ μμ§ λͺ»ν©λλ€.
κ²°κ³Όμ μΌλ‘β¦
id = 1646
κΉμ§ μ‘΄μ¬1645
μ 머무λ¦id = 1646
μ¬μ¬μ© β μ€λ³΅ ν€ μλ¬ λ°μμνμ€ κ°μ ν μ΄λΈμ νμ¬ μ΅λ id μ΄νλ‘ μλ κ°±μ ν΄μΌ ν©λλ€.
-- student_courses ν
μ΄λΈμ μ΅λ id κΈ°μ€μΌλ‘ μνμ€ κ° μ¬μ€μ
SELECT setval('student_courses_id_seq', (SELECT MAX(id)
FROM student_courses) + 1);
μ΄μ μνμ€κ° μ μμ μΌλ‘ μ΄μ΄μ λ²νΈλ₯Ό λ°κΈν©λλ€.
1. CSV λ±μΌλ‘ λ°μ΄ν°λ₯Ό λ£μ λλ idλ₯Ό μλ΅ β DB μνμ€κ° μμμ κ΄λ¦¬
2. λΆκ°νΌνκ² idλ₯Ό μ§μ ν΄μΌ νλ€λ©΄, μ½μ
ν λ°λμ setval()λ‘ μνμ€λ₯Ό μ‘°μ
λ¬Έμ : μλ μ¦κ° 컬λΌμμ μ€λ³΅ ID λ°μ
μμΈ : CSV λ± μλ μ½μ
μ μνμ€ κ°μ΄ κ°±μ λμ§ μμ
ν΄κ²° : setval()λ‘ μνμ€λ₯Ό ν
μ΄λΈ μ΅λ id + 1 λ‘ μλ μ€μ
μλ°© : μλ μ½μ
ν μνμ€ μ¬μ‘°μ , κ°λ₯νλ©΄ id μλ΅ ν insert
κ²°λ‘ : PostgreSQLμμλ μνμ€μ μ€μ λ°μ΄ν°κ° μ΄κΈλ μ μλ€.
νΉν μλ λ°μ΄ν° μ½μ
μ νλ€λ©΄ λ°λμ setval()
λ‘ νμΈ/보μ νλ μ΅κ΄μ΄ νμνλ€.