ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • query builder 레코드 삽입, 수정, 증가/감소 메서드 설명
    백엔드/laravel 2024. 1. 14. 13:18

    1. Update 메서드:

    • update 메서드를 사용하여 데이터베이스의 레코드를 갱신합니다.
    • where 메서드를 사용하여 갱신할 레코드를 선택합니다. 이 메서드는 기본적으로 동등 연산자(=)를 사용하며, orWhere 메서드를 통해 여러 레코드를 갱신할 수 있습니다.
    • 레코드의 특정 컬럼 값을 갱신하는 방법을 설명하였습니다.
    • 예시

            // Update one row
            DB::table('posts')->where('id', 1000)->update(['excerpt' => 'Laravel 10', 'description' => 'Laravel 10']);

            // Update multiple rows
            DB::table('posts')->where('id', '>', 1000)->update(['excerpt' => 'Laravel 10', 'description' => 'Laravel 10']);

            // Update multiple conditions
            DB::table('posts')->where('id', 1000)->orWhere('id', 1001)
                ->update(['excerpt' => 'Laravel 10x', 'description' => 'Laravel 10x']);

     

    2. Increment 및 Decrement 메서드:

    • increment 및 decrement 메서드는 특정 정수형 컬럼의 값을 증가 또는 감소시킵니다.
    • increment 메서드는 두 번째 매개변수로 증가량을 지정할 수 있습니다.
    • decrement 메서드는 컬럼의 값을 감소시킵니다.
    • 예시

            DB::table('posts')->where('min_to_read', 1000)->increment('min_to_read');
            이 코드는 posts 테이블에서 min_to_read 값이 1000인 레코드의 min_to_read 값을 1만큼 증가시킵니다.
            
            DB::table('posts')->where('id', 1000)->decrement('min_to_read', 4);
             posts 테이블에서 id가 1000인 레코드의 min_to_read 값을 4만큼 감소시킵니다.
            
            DB::table('posts')->incrementEach(['min_to_read', 'lines']);
            posts 테이블의 모든 레코드에 대해 min_to_readlines 컬럼 값을 1씩 증가시킵니다.
            
            DB::table('posts')->updateOrInsert(['excerpt' => 'Laravel 10x'], ['id' => 1000]); 

             posts 테이블에서 excerpt이 'Laravel 10x'인 레코드를 찾아 id가 1000으로 지정된 값으로 업데이트하거나,

             해당 레코드가 없으면 새로운 레코드를 삽입합니다.

             존재하는 레코드에 대해 업데이트 또는 레코드가 없을 경우 삽입을 수행합니다.

     

    3. Increment 메서드:

    • increment 메서드는 특정 테이블의 여러 컬럼 값을 동시에 증가시킬 수 있습니다.
    • 여러 컬럼의 값을 증가시키는 방법과 where 절을 사용하여 조건부로 증가시키는 방법을 설명하였습니다.
    • 예시
      DB::table('posts')->where('id', '>', 1014)->increment(['minutes_to_read' => 5, 'lines' => 2, ]);

    4. UpdateOrInsert 메서드:

    • updateOrInsert 메서드는 기존 레코드를 갱신하거나, 레코드가 없는 경우 새로운 레코드를 삽입합니다.
    • 첫 번째 매개변수는 업데이트 또는 삽입할 값을 나타내는 키-값 쌍의 배열입니다.
    • 두 번째 매개변수는 레코드의 고유 제약 조건을 나타내는 키-값 쌍의 배열입니다.
    • 예시
      $dataToUpsert = [
          'excerpt' => 'Laravel',
          'description' => 'Laravel',
      ];

      // ID가 1014인 레코드의 excerpt 및 description 업데이트 또는 없으면 삽입
      DB::table('posts')->updateOrInsert(['id' => 1014], $dataToUpsert);

    댓글

Designed by Tistory.