2021년 목표설정

이미지
기본적으로 작년에 달성하지 못한 것들을 하려고 생각중인데..코로나가 언제까지 이어질지, 한국이나 북해도는 갈 수 있을지..자격증은 응시 가능할지..여러가지가 불확실하다. 2021년은 무엇보다 정신적인 부분과 경제적인 부분에 중점을 두고 조금 더 치열하게 지내보고 싶다. 일본나이로도 30대 마지막 해, 이제 불혹에 접어드는 나이..복잡하지만 심플하게. 육체적목표 : 트라이에슬론 스탠다드 도전하기 정신적 : 자격증2개 도전 + 자체개발 서비스 론칭 가족적 : 가정의 평화를 유지하기 경제적 : 외식과 유흥비를 줄이고 부수입을 늘려서 결과적으로 저축하기 사회적 : 목표세미나를 포함해서 민단과 개인인맥의 활성화와 교류를 촉진하기

Cakephp3 에서 같은 테이블의 복수의 레코드를 한 번에 인서트 하는 방법

하나의 테이블에서 복수의 레코드를 추가해야 하는 경우, 미리 데이터셋을 만들어 놓은 뒤 foreach 로 돌려가면서 insert 하면 한 번에 여러 컬럼을 넣을 수 있다.
현재 프로젝트에서는 고객정보를 등록하면 고객이 사용하는 마스터의 최신 레코드 인덱스들을 관리하는 채번 테이블에 마스터 별로 레코드를 생성할 필요가 있었는데 다음과 같이 해결했다.
> CustomerController.php
public function add()
{
// 다른 코드는 생략...
if($this->Masters->exists(['customer_idx' => $customer_idx])) // 마스터 관리하는 채번 테이블에 고객이 존재하나 확인
{
$this->Flash->error(__('해당 고객번호가 존재하므로 채번 테이블에 레코드 생성 실패했습니다'));
}
else
{
        // 해당 테이블에 인서트 할 정보를 미리 정의하는 부분
        $master_temp = [
        [
             'customer_idx' => $customer_idx,
             'master_type' => 'SC',
             'current_idx' => 0,
        ],
// 필요한 정보를 위와 같이 정의해서 정렬, 여러 개 가능
];
// Master_index에 레코드를 추가하는 처리
$query = $this->Masters->query();
$query->insert(['customer_idx','master_type','current_idx']); // 컬럼명은 위에 정의한 데이터와 일치시킴
foreach ($master_temp as $master) {
$query->values($master);
}
$query->execute();
$this->Flash->success(__('성공적으로 추가되었습니다.'));
}
// 다른 코드는 생략
}

솔까말 별로 어려운 내용은 아닌데 걍 내가 실력이 딸려서 그래 쿨럭

댓글

이 블로그의 인기 게시물

[메모] PostgreSQL에서 Insert 하는 경우 자동채번 PK가 중복에러 나는 경우

[C# & LINQ] 랜덤으로 데이터를 한 개 추출하는 방법

[react-native] uuid 생성이 에러가 날 때 대처법