본문 바로가기
  • 포르쉐타고싶다

insert3

[MySQL] INSERT할 때 배열을 INSERT하는 방법 1. 배경 쿼리문을 짜다보면 개수가 정해지지 않은 배열을 INSERT해야 할 일이 생긴다. 만약 개수가 정해진 배열이면 INSERT INTO [TABLE] (COLUMN1, COLUMN2) VALUES (VALUE11, VALUE21), (VALUE12, VALUE22), (VALUE13, VALUE23) 이렇게 나열해서 insert할 수 있다. 하지만 개수가 정해지지 않은 객체배열은 어떻게 INSERT해야할까 서버에서 INSERT CONNECTION 쿼리문에 for문을 돌려서 '조진다'? LOOP PROCEDURE을 사용해야 할까? 2. 개념 방법은 쉬웠다. 1) 위에서 VALUES 뒤에 괄호를 넣어주지 않고 2) ?를 넣은 쿼리문을 connection_query에 넣어주고 3) ?에 대한 값으로 이중.. 2020. 5. 4.
[mysql] INSERT - 중복되는 데이터는 넣지 않기 1. 배경 어떤 테이블은 데이터가 중복으로 들어가면 안되는 항목을 갖고있다. 예를 들어, 어떤 게시물의 [좋아요] 데이터를 갖고있는 테이블은 게시물_idx 유저_idx 조합의 칼럼을 갖고있고 로직을 간단하게 생각해보면 저 조합이 중복으로 들어가면 안된다는 것을 알 수 있다. (통신오류로 좋아요를 여러번 눌렀는데 제대로 취소되지 않고 중복으로 좋아요 데이터가 들어가게되면 나중에 유저가 나중에 좋아요를 취소했는데 좋아요 기록이 아직 남아있는 오류 발생) 그렇다면 애초에 중 {게시물_idx, 유저_idx}의 조합이 중복으로 insert되는 것을 미연에 방지해야 한다. 2. 개념 크게 두가지의 방법이 있다 1) 매 쿼리문에서 방지 ->where not exists 2) 컬럼 속성 설정을 통해 방지 -> (1) .. 2020. 4. 24.
[MySQL] Insert 할 때 특정 컬럼만 select 보통의 INSERT문은 INSERT INTO [TABLE] (COLUMN1, COLUMN2, COLUMN3) VALUES (VALUE1, VALUE2, VALUE3) 의 형태로 사용된다. 하지만 본인은 쿼리문을 작성 중, 다른 테이블에서 어떠한 조건을 가진 레코드에 대해서, 해당 인덱스에 대해서만 다른 테이블에 그에 대한 정보를 insert해야할 일이 생겼다. 그리고 INSERT해야하는 값 중에는 다른테이블의 값이 아닌 일반 상수도 포함되어야 한다. 예를 들어, 학생들 중 점수가 90점이 넘은 학생들만 장학생 테이블에 추가한다고 해보자 먼저 학생 테이블 [STUDENT]를 보면 STUDENT_IDX STUDENT_NAME STUDENT_SCORE 1 철수 92 2 영희 87 3 민수 95 그리고 점수가 .. 2020. 3. 31.