# DUPLICATE
[Flutter] Equatable 1탄
Equatable 1탄 equatable | Dart Package Equatable 사용해보기 2편 이번 글에서는 Flutter의 인기있는 라이브러리 중 하나인 Equatable 라이브러리에 대해서 작성하려고 한다. 보통 Bloc을 사용해보신 분이면 많이 익숙할 라이브러리일 것이다. 저도 Bloc을 자주 사용하지만 Equatable의 기능을 담고 있는 다른 방식의 Bloc 사용 법으로 개발을 해오다 보니 Equatable을 잘 사용하지는 않았었다. 최근에 velog글에 사용될 예제를 만들면서 Bloc을 좀 더 심플하게 생성하게 되어 Equatable을 자주 사용하게 되었다. 하지만 정확히 왜 써야하고 꼭 필수로 사용을 해야하는지에 대해서 알아보기 위해 글을 작성하게 되었다. Flutter Flutte
많이 쓰지만 잘 모르는 Insert
흔히들 아는 Insert 문이란 다음의 형식과 같다. 하지만 PK가 겹친다면 duplicate 에러가 나버린다. 중복된다는 뜻. 그를 위해 ORM에서는 Upsert의 기능이 있다. Insert하고, 만약 있다면 Update하는 것이다. 그를 위해 먼저 Select을 돌린다. 2개의 구문이 나간다는 것이다. 비효율적이지않은가? 자세하게는 적지않겠다. 나보다 더 잘 정리한 사람들이 있으니 들어가기 귀찮을테니 대략적으로 적자면 다음과 같이 이미 있다면, 원래 있던 값에 1을 더한다는 것이다. 그냥 score 로 접근한다면 기존 테이블에 있는 값을, VALUES(score)로 접근한다면 Insert문에 있는 score값에 접근이 된다. 즉 기존 값에 추가가 된다는 것이다. 왜 이런 방식을 사용하냐면, 데이터의 무결성과 정

react + apollo + graphql + codegen => error(graphql duplicate) fix
!!! Setting https://www.apollographql.com/blog/tooling/apollo-codegen/typescript-graphql-code-generator-generate-graphql-types/ apollo codegen 이와 같은 에러가 발생하였다. yarn과 npm에서 graphql version이 달라서 발생하는 상황이다. 이 버전으로 node_modules과 yarn cache를 지우고 다시 설치하여 준다.

crash-safe replication
예기치못한 MySQL shutdown, Duplicate Key 왜 발생할까 ? 먼저 MySQL replication Architecture를 보자 SQL thread replication Architecture 를 봤으니, 다시 왜 중복이 나는지 돌아가보자 간단하게 끝나는 내용 SQL thread 먼저 Replica에 3의 값을 적용후 metadata 갱신 하지 못한 채로 갑작스러운 SHUTDOWN relayloginfo_repository=FILE인 경우, Replica에 적용내용과 metadata정보가 틀
[Mybatis]ON DUPLICATE KEY UPDATE를 이용해 UPSERT 해보기(UPDATE + INSERT)
회사 업무를 할 때 mybatis 를 이용해 쿼리를 다뤘었다 그 때 테이블을 주기적으로 update + insert 할 일이 있었다! 맨 처음에는 table을 전체 drop 하고 다시 데이터를 insert 하는 방법을 생각했으나 드롭한 사이에 호출을 할 수도 있는 상황인지라 다른 방법을 찾아야했다 🤦♀️ 그러던 중 ON DUPLICATE KEY UPDATE를 이용해 UPSERT를 진행할 수 있다는 것을 알게 되었다! 그리고 update 할 컬럼을 지정할 수 있다는 점에서 효율적이었다! insert/update 문이지만 insert 를 이용해야한다 INSERT INTO TABLE() 뒤의 괄호문에 무조건 컬럼명을 적어줘야한다 위 쿼리는 mysql 기준이여서 NOW()를 사용했다 ON DUPLICATE KEY UPDATE 이후에는 변경할 컬럼 값만 적어준다 (컬럼2, 컬럼3, 컬럼4[REGDATE]에서 변경이 이루어진다) 이 때 컬럼명 = values(컬럼

[leetcode]Set Mismatch
problem code possible cases 1st try: with Map > It must be better to use duplicate, missing variables other than new int[2] cuz they are more clear to read the code. Time: O(N); two for loop iterating N Space: O(N); HashMap contains
[TIL] MSSQL delete duplicate rows
MSSQL 에 중복행이 들어 있을 때, update나 delete가 되지 않는 경우가 있다. 이럴 때 아래 구문을 응용하여 삭제하면 한 줄만 남기게 된다. 출처: https://www.sqlservertutorial.net/sql-server-basics/delete-duplicates-sql-server/

[MySQL] 중복 레코드 처리 방법
중복 레코드 > MySQL에서 테이블에 레코드를 INSERT할 때, PK가 DUPLICATE 되는 현상이 번번히 일어난다. ex) 공간가격-날짜 복합키를 해당 테이블에 INSERT할 때, 중복일 경우 따라서 위 와 같은 현상을 해결하고자 한다면, 해당 데이터를 INSERT하지 않거나, 해당 레코드를 UPDATE를 해야한다. MySQL에서는 다음 3가지 방법으로 해결할 수 있다. INSERT IGNORE 말 그대로 삽입(INSERT)하되, duplicate가 발생한다면, 해당 레코드는 무시하고 넘어가는 방법이다. 즉, ERROR를 무시하고 INSERT만 하는 명령어이다. 기존에 'test01@gmail.com' 이라는 레코드가 있기 때문에, Query는 실행됬으나, 반영된 레코드의 수는 0 이다. REPLCATE INTO 말 그대로 삽입(INSERT)하되, duplicate가 발생한다면, 기존의 레코드는 삭제가 되고, 새로운 PK로 Aut
[mySQL] UPSERT - ON DUPLICATE KEY UPDATE
DUPLICATE KEY UPDATE 데이터를 INSERT 할 때 이미 존재하면 UPDATE 해준다. 존재하지 않은 데이터라면 INSERT 해준다. >## 사용 방법 >중복 키를 제외한 update 컬럼을 써준다. >### INSERT INTO (테이블 명) >이름, 전화번호 > >### VALUES >이영주, 01012341234 > >### ON DUPLICATE KEY UPDATE >전화번호:01012341234 order_index (중복값) ![](https://images.velog.io/images/yj-leee/post/99c96c3e-6cfc-4532-8c18-c15f02c5367e/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-01-02%20%E1%84%8B%E1%85%A9%E1%84%8C%E1%85%A5%E1%86%AB%2