이 문서는 >25_word_>496_word_end<<되지 않는 버전의 Postgre>166_word_>496_word_end<<을위한 것입니다.
>147_word_>496_word_end<<>71_word_>496_word_end<<버전 >468_word_>496_word_end<< 위에 나열된 다른 >25_word_>496_word_end<< 버전 중 하나입니다.

>176_word_>496_word_end<<

>178_word_>496_word_end<<>164_word_>496_word_end<<>180_word_>496_word_end<<>164_word_>496_word_end<<>182_word_>496_word_end<<Postgre>166_word_>496_word_end<<>184_word_>496_word_end<<

>187_word_>496_word_end<<

>189_word_>496_word_end<<>190_word_>496_word_end<<>191_word_>496_word_end<<>171_word_>496_word_end<< 반환.

>196_word_>496_word_end<< >190_word_>496_word_end<<

>190_word_>496_word_end<<>200_word_>496_word_end<<;

>190_word_>496_word_end<<>200_word_>496_word_end<<식 함수를 종료하고 값을 반환합니다>200_word_>496_word_end<<>206_word_>496_word_end<<>164_word_>496_word_end<<>208_word_>496_word_end<<

스칼라 유형을 반환 할 때 모든 >200_word_>496_word_end<<식을 사용할 수 있습니다. >200_word_>496_word_end<<식의 결과는 자동으로 캐스트됩니다 과제에 대해 설명대로 함수의 리턴 유형. 에게 복합재 (행) 값을 반환하려면 레코드를 작성하거나 행 변수로>200_word_>496_word_end<<.

>214_word_>496_word_end<<>190_word_>496_word_end<<>216_word_>496_word_end<<

>218_word_>496_word_end<<>219_word_>496_word_end<<>220_word_>496_word_end<<>190_word_>496_word_end<<>326_word_>496_word_end<< 여전히 제공되어야합니다. 그러나이 경우 >200_word_>496_word_end<< 수행원>190_word_>496_word_end<<>224_word_>496_word_end<<

>228_word_>496_word_end<< >171_word_>496_word_end<< 반환

반환 >171_word_>496_word_end<<>200_word_>496_word_end<<;

>235_word_>496_word_end<<>164_word_>496_word_end<<>237_word_>496_word_end<<>238_word_>496_word_end<<>239_word_>496_word_end<<, 따라야 할 절차 >239_word_>496_word_end<< 다릅니다. 이 경우 개별 항목은 반품은에 >563_word_end<>171_word_>496_word_end<< 반환>242_word_>496_word_end<<>190_word_>496_word_end<<>244_word_>496_word_end<<반환 >171_word_>496_word_end<<>246_word_>496_word_end<<>247_word_>496_word_end<<>248_word_>496_word_end<<

>250_word_>496_word_end<<>171_word_>496_word_end<< 반환>171_word_>496_word_end<< 방식으로 호출해야합니다.

>254_word_>496_word_end<<

>256_word_>496_word_end<<>257_word_>496_word_end<<

>171_word_>496_word_end<< 반환실제로는 그렇지 않습니다 함수에서 돌아 오십시오. 그것은 단순히 가치를 절약합니다 >200_word_>496_word_end<<. 그런 >171_word_>496_word_end<< 실행은 >171_word_>496_word_end<<과 함께 계속됩니다 의 >326_word_>496_word_end<<>164_word_>496_word_end<<>262_word_>496_word_end<<>171_word_>496_word_end<< 반환>264_word_>496_word_end<<>190_word_>496_word_end<<>266_word_>496_word_end<<

>270_word_>496_word_end<<>71_word_>496_word_end<<의 구현반환 >171_word_>496_word_end<<>273_word_>496_word_end<<>164_word_>496_word_end<<>275_word_>496_word_end<<>164_word_>496_word_end<<>277_word_>496_word_end<<>164_word_>496_word_end<<사용자가 정의 할 수 있습니다 이 제한이없는 세트 리턴 기능. >71_word_>496_word_end<< 데이터가 작성되기 >660_word_end<하는 시점 디스크는에 의해 제어됩니다.>280_word_>496_word_end<<>281_word_>496_word_end<<

35.>129_word_>496_word_end<<. >677_word_end<부

>290_word_>496_word_end<<>291_word_>496_word_end<<>164_word_>496_word_end<<>293_word_>496_word_end<<>290_word_>496_word_end<<:

  • >290_word_>496_word_end<< >409_word_>496_word_end<< >325_word_>496_word_end<

  • >290_word_>496_word_end<< >409_word_>496_word_end<< 그런 >171_word_>496_word_end<< >409_word_>496_word_end<< >351_word_>496_word_end<<

  • >290_word_>496_word_end<< >409_word_>496_word_end<< 그런 >171_word_>496_word_end<< >409_word_>496_word_end<< >351_word_>496_word_end<< >290_word_>496_word_end<<

  • >290_word_>496_word_end<< >409_word_>496_word_end<< 그런 >171_word_>496_word_end<< >409_word_>496_word_end<< Els>290_word_>496_word_end<< >409_word_>496_word_end<< 그런 >171_word_>496_word_end<< >409_word_>496_word_end<< 또 다른

  • >290_word_>496_word_end<< >409_word_>496_word_end<< 그런 >171_word_>496_word_end<< >409_word_>496_word_end<< >351_word_>496_word_end<<>290_word_>496_word_end<< >409_word_>496_word_end<< 그런데 >409_word_>496_word_end<< 또 다른

35.>129_word_>496_word_end<<.1. >290_word_>496_word_end<<->325_word_>496_word_end<

>290_word_>496_word_end<<부울->200_word_>496_word_end<<>325_word_>496_word_end<<>326_word_>496_word_end<<종료 >290_word_>496_word_end<<;

>290_word_>496_word_end<<->325_word_>496_word_end<>326_word_>496_word_end<<은 >171_word_>496_word_end<<과 같습니다 가장 간단한 형태의>290_word_>496_word_end<<. >326_word_>496_word_end<< 사이>325_word_>496_word_end<<>191_word_>496_word_end<<>335_word_>496_word_end<<>336_word_>496_word_end<<

>338_word_>496_word_end<<

>290_word_>496_word_end<< v_user_id < 0이면
    사용자 업데이트는 이메일 = v_email user_id = v_user_id를 설정합니다.
끝 If;

35.>129_word_>496_word_end<<.2. >290_word_>496_word_end<<->325_word_>496_word_end<351_word_>496_word_end<<

>290_word_>496_word_end<<부울->200_word_>496_word_end<<>325_word_>496_word_end<<>326_word_>496_word_end<<>351_word_>496_word_end<<>326_word_>496_word_end<<종료 >290_word_>496_word_end<<;

>290_word_>496_word_end<<->325_word_>496_word_end<351_word_>496_word_end<<>326_word_>496_word_end<< 추가>290_word_>496_word_end<<->325_word_>496_word_end<>171_word_>496_word_end<<과 같은 경우 실행 해야하는 대체 >326_word_>496_word_end<< 세트 >677_word_end<은 거짓으로 평가됩니다.

>338_word_>496_word_end<<

Parentid가 null >468_word_>496_word_end<< parentid = ''인 경우 = ''
그 >171_word_>496_word_end<<에
    풀 >544_word_end<을 반환하십시오.
또 다른
    hp_true_filename (parentid) ||를 반환합니다 '/'|| 풀 >544_word_end<;
끝 If;
>290_word_>496_word_end<< v_count 0이면 
    user_count (count) 값 (v_count)에 삽입;
    반환 't';
또 다른
    반환 'f';
끝 If;

35.>129_word_>496_word_end<<.3. >290_word_>496_word_end<<->325_word_>496_word_end<351_word_>496_word_end<< >290_word_>496_word_end<<

>290_word_>496_word_end<<>326_word_>496_word_end<<은 중첩 될 수 있습니다 >171_word_>496_word_end<< 예에서 :

>290_word_>496_word_end<< demo_row.sex = 'm'그러면
    pretty_sex : = 'man';
또 다른
    demo_row.sex = 'f'라는 경우
        pretty_sex : = '여자';
    끝 IF;
끝 If;

>376_word_>496_word_end<<>290_word_>496_word_end<<내부의 >326_word_>496_word_end<<>351_word_>496_word_end<<>380_word_>496_word_end<<>290_word_>496_word_end<<>326_word_>496_word_end<<. 따라서 하나가 필요합니다종료 >290_word_>496_word_end<<>384_word_>496_word_end<<>290_word_>496_word_end<<>386_word_>496_word_end<<>290_word_>496_word_end<<->351_word_>496_word_end<<. 이것은 실행 가능하지만 지루한 성장합니다 확인해야 할 대안이 많이있을 때. 따라서 >171_word_>496_word_end<< 양식.

35.>129_word_>496_word_end<<.4. >290_word_>496_word_end<<->325_word_>496_word_end<290_word_>496_word_end<<->351_word_>496_word_end<<

>290_word_>496_word_end<<부울->200_word_>496_word_end<<>325_word_>496_word_end<<>326_word_>496_word_end<<[els>290_word_>496_word_end<<부울->200_word_>496_word_end<<>325_word_>496_word_end<<>326_word_>496_word_end<<[els>290_word_>496_word_end<<부울->200_word_>496_word_end<<>325_word_>496_word_end<<>326_word_>496_word_end<<
    >409_word_>496_word_end<<]>411_word_>496_word_end<<>351_word_>496_word_end<<>326_word_>496_word_end<< >415_word_>496_word_end<<

>290_word_>496_word_end<<->325_word_>496_word_end<290_word_>496_word_end<<->351_word_>496_word_end<<>418_word_>496_word_end<<>290_word_>496_word_end<<->325_word_>496_word_end<351_word_>496_word_end<<->290_word_>496_word_end<<->325_word_>496_word_end<>420_word_>496_word_end<<종료 >290_word_>496_word_end<<>422_word_>496_word_end<<

예는 >171_word_>496_word_end<<과 같습니다.

>290_word_>496_word_end<< number = 0이면
    결과 : = 'Zero';
Els>290_word_>496_word_end<< 번호 0 
    결과 : = '긍정적';
Els>290_word_>496_word_end<< 번호 <0
    결과 : = '부정';
또 다른
    - 흠, 유일한 다른 가능성은 숫자가 null이라는 것입니다.
    결과 : = 'null';
끝 If;

35.>127_word_>496_word_end<<. 단순한 >443_word_>496_word_end<<

>442_word_>496_word_end<<>443_word_>496_word_end<<, >445_word_>496_word_end<<, >447_word_>496_word_end<<>273_word_>496_word_end<<>326_word_>496_word_end<<, 당신은 준비 할 수 있습니다 당신의PL/PG>166_word_>496_word_end<<>452_word_>496_word_end<<

35.>127_word_>496_word_end<<.1. >456_word_>496_word_end<<

[>459_word_>496_word_end<<>460_word_>496_word_end<<>461_word_>496_word_end<<>326_word_>496_word_end<<엔드 >443_word_>496_word_end<<;

>443_word_>496_word_end<<무>677_word_end<적인 정의 an에 의해 종료 될 때까지 무기한 반복되는 >443_word_>496_word_end<<>445_word_>496_word_end<<>468_word_>496_word_end<<>190_word_>496_word_end<<>326_word_>496_word_end<<. 선택적 >460_word_>496_word_end<<이 될 수 있습니다 사용>445_word_>496_word_end<<중첩 된 >326_word_>496_word_end<< 어떤 레벨의 중첩이어야하는지 지정하는 >443_word_>496_word_end<< 종료.

35.>127_word_>496_word_end<<.2. >445_word_>496_word_end<<

>445_word_>496_word_end<< [ >460_word_>496_word_end<< >483_word_>496_word_end<<>235_word_>496_word_end<<>200_word_>496_word_end<< >487_word_>496_word_end<<

>290_word_>496_word_end<< no>460_word_>496_word_end<<가 제공됩니다 가장 안쪽 >443_word_>496_word_end<<가 종료되고 >171_word_>496_word_end<<은 >171_word_>496_word_end<<에엔드 >443_word_>496_word_end<<>171_word_>496_word_end<<에 실행됩니다>643_word_end<>460_word_>496_word_end<<가 주어져 있어야합니다 중첩 >443_word_>496_word_end<<의 전류 >468_word_>496_word_end<< 일부 외부 레벨의 >460_word_>496_word_end<< >468_word_>496_word_end<< 블록. 그런 >171_word_>496_word_end<< >544_word_end<이 지정된 >443_word_>496_word_end<< >468_word_>496_word_end<< 블록이 종료됩니다 >443_word_>496_word_end<>496_word_end<.

>290_word_>496_word_end<<>235_word_>496_word_end<<가 있으며, >443_word_>496_word_end<< 종료 지정된 >677_word_end<이 참인 경우에만 발생합니다 컨트롤은 이후에 >326_word_>496_word_end<<로 전달됩니다.>445_word_>496_word_end<<.

>445_word_>496_word_end<<조기에 유발하는 데 사용될 수 있습니다 모든 유형의 >443_word_>496_word_end<<에서 종료; 사용에만 국한되지 않습니다 무>677_word_end< >443_word_>496_word_end<<.

>338_word_>496_word_end<<

>443_word_>496_word_end<<
    - 일부 계산
    count 0이면
        >445_word_>496_word_end<<;  - 종료 >443_word_>496_word_end<<
    끝 IF;
엔드 >443_word_>496_word_end<<;

고리
    - 일부 계산
    count 0 일 때 종료;  - >159_word_>496_word_end<< 예와 동일한 결과입니다
엔드 >443_word_>496_word_end<<;

>660_word_end<하다
    - 일부 계산
    주식이 100000이면
        >445_word_>496_word_end<<;  - >660_word_end< 블록에서 종료됩니다
    끝 IF;
끝;

35.>127_word_>496_word_end<<.3. >447_word_>496_word_end<<

[>459_word_>496_word_end<<>460_word_>496_word_end<<>520_word_end<>200_word_>496_word_end<<>443_word_>496_word_end<<>326_word_>496_word_end<<엔드 >443_word_>496_word_end<<;

>325_word_>496_word_end<<>447_word_>496_word_end<<>326_word_>496_word_end<< 반복 a >677_word_end< >200_word_>496_word_end<<식만큼 >326_word_>496_word_end<< 순서 True로 평가합니다. >677_word_end<은 각각 직전에 확인됩니다 >443_word_>496_word_end<< 바디 입력.

>338_word_>496_word_end<<

>447_word_>496_word_end<< Voll_owed 0 및 G>290_word_>496_word_end<290_word_>496_word_end<443_word_>496_word_end<<
    - 여기에 일부 계산
엔드 >443_word_>496_word_end<<;

Boolean_expression >443_word_>496_word_end<<는 아닙니다
    - 여기에 일부 계산
엔드 >443_word_>496_word_end<<;

35.>127_word_>496_word_end<<.4. >273_word_>496_word_end<<>538_word_end<

[>459_word_>496_word_end<<>460_word_>496_word_end<<>543_word_end<>544_word_end<>545_word_end<>546_word_end<]>200_word_>496_word_end<< >549_word_end< >200_word_>496_word_end<<>456_word_>496_word_end<<>326_word_>496_word_end<<엔드 >443_word_>496_word_end<<;

>555_word_end<>273_word_>496_word_end<<>443_word_>496_word_end<<를 만듭니다 그것은 다양한 정수 값을 반복합니다. 변수>544_word_end<>559_word_end<>560_word_end<내부에만 존재합니다 >443_word_>496_word_end<<. 두 >200_word_>496_word_end<<은 하단과 상단을 제공합니다 범위의 경계는 >443_word_>496_word_end<<에 들어갈 때 한 번 평가됩니다. 반복 단계는 일반적으로 1이지만 -1은입니다.>546_word_end<>563_word_end<

>565_word_end<>273_word_>496_word_end<<>443_word_>496_word_end<< :

I의 경우 1>549_word_end<10 >443_word_>496_word_end<<
    - 여기에 일부 계산
    제기 통지 'I is %', i;
엔드 >443_word_>496_word_end<<;

반전 10>549_word_end<1 >443_word_>496_word_end<<
    - 여기에 일부 계산
엔드 >443_word_>496_word_end<<;

하한이 상한보다 큰 경우 (>468_word_>496_word_end<< 에서>546_word_end<case), The >443_word_>496_word_end<< 바디는 전혀 실행되지 않습니다. 오류가 발생하지 않습니다.

35.>125_word_>496_word_end<<. >590_word_end<를 통한 반복 결과

>580_word_end<>273_word_>496_word_end<<>443_word_>496_word_end<<, >590_word_end< 결과를 반복하고 조작 할 수 있습니다. 그 데이터는 그 데이터입니다. 구문은 >171_word_>496_word_end<<과 같습니다.

[>459_word_>496_word_end<<>460_word_>496_word_end<<>543_word_end<>588_word_end<>589_word_end<>590_word_end<>443_word_>496_word_end<<>326_word_>496_word_end<<엔드 >443_word_>496_word_end<<;

레코드 >468_word_>496_word_end<< 행 변수는 각 행에 연속적으로 할당됩니다. 에서 결과>590_word_end<(>598_word_end<명령) 및 >443_word_>496_word_end<< 신체는 각 행에 대해 실행됩니다. 예는 >171_word_>496_word_end<<과 같습니다.

함수 생성 cs_refresh_mviews () 정수를 $$로 반환합니다
>671_word_end<하다
    mviews 레코드;
>660_word_end<하다
    cs_log ( '상쾌한 구체화 된 뷰 >409_word_>496_word_end<<')를 수행합니다.

    SELECT *의 MVIEWS의 경우 CS_MATERIALIZED_VIEWS ORDER의 SORT_KEY LOOP 주문

        - 이제 "mviews"는 cs_materialized_views의 한 레코드를 가지고 있습니다

        cs_log ( '새로 고침 구체화 된보기'|| QUOTE_INDEN (mviews.mv_name) || '>409_word_>496_word_end<<');
        '잘린 테이블'||를 실행하십시오 quote_ident (mviews.mv_name);
        '삽입'||를 실행하십시오 quote_ident (mviews.mv_name) || ''|| mviews.mv_query;
    엔드 >443_word_>496_word_end<<;

    CS_LOG를 수행합니다 ( '재생 구체화 된보기');
    반환 1;
끝;
$$ 언어 plpgsql;

>443_word_>496_word_end<<가 an에 의해 종료 된 경우>445_word_>496_word_end<<문, 마지막으로 할당 된 행 값은입니다 >443_word_>496_word_end<< 후에도 여전히 액세스 할 수 있습니다.

>325_word_>496_word_end<<>273_word_>496_word_end<<->589_word_end<->616_word_end<>609_word_end<

[>459_word_>496_word_end<<>460_word_>496_word_end<<>543_word_end<>588_word_end<>616_word_end<>617_word_end<>443_word_>496_word_end<<>326_word_>496_word_end<<엔드 >443_word_>496_word_end<<;

이것은 소스를 제외하고는 >159_word_>496_word_end<< 형식과 같습니다>598_word_end<명령문은 a로 지정됩니다 문자열 >200_word_>496_word_end<<식 입력>273_word_>496_word_end<<>443_word_>496_word_end<<. 이것은 허용합니다 미리 계획된 >590_word_end<의 속도 >468_word_>496_word_end<< 평범한 것과 마찬가지로 동적 >590_word_end<의 유연성>616_word_end<>326_word_>496_word_end<<.

>270_word_>496_word_end<<>325_word_>496_word_end<<PL/PG>166_word_>496_word_end<<>71_word_>496_word_end<< 파서 두 종류의를 구별합니다.>273_word_>496_word_end<<>443_word_>496_word_end<< (정수 >468_word_>496_word_end<< >590_word_end< 결과)를 확인하여>549_word_end<>639_word_end<>589_word_end<>191_word_>496_word_end<<>443_word_>496_word_end<<>643_word_end<>549_word_end<는 그렇지 않습니다 그런 >171_word_>496_word_end<< >443_word_>496_word_end<<는 줄을 통한 >443_word_>496_word_end<<로 추정됩니다. 안개가>549_word_end<>647_word_end<">443_word_>496_word_end<< 변수 >443_word_>496_word_end<<를 통과하는 >443_word_>496_word_end<< 변수는 레코드 여야합니다. >468_word_>496_word_end<< 행 변수 ">649_word_end<

>655_word_end<

>657_word_end<PL/PG>166_word_>496_word_end<<>659_word_end<>660_word_end<>661_word_end<>257_word_>496_word_end<< 구문은 연장입니다 a에 대한 일반 구문>660_word_end<>664_word_end<

[ >459_word_>496_word_end<<>460_word_>496_word_end<< >411_word_>496_word_end<<>671_word_end<>671_word_end< ]
>660_word_end<하다>326_word_>496_word_end<<>661_word_end<
    >235_word_>496_word_end<<>677_word_end<[>468_word_>496_word_end<<>677_word_end< >409_word_>496_word_end<< ] 그런 >171_word_>496_word_end<<h>191_word_>496_word_end<[>235_word_>496_word_end<<>677_word_end<[>468_word_>496_word_end<<>677_word_end< >409_word_>496_word_end<< ] 그런 >171_word_>496_word_end<<h>191_word_>496_word_end<
      >409_word_>496_word_end<< >694_word_end<

오류가 발생하지 않으면>555_word_end< 블록은 단순히 모든 것을 실행합니다. 그만큼>326_word_>496_word_end<<컨트롤이 >171_word_>496_word_end<< >326_word_>496_word_end<<로 전달됩니다>699_word_end<>700_word_end<>326_word_>496_word_end<<>702_word_end<>326_word_>496_word_end<<>704_word_end<>661_word_end<>706_word_end<>677_word_end<>708_word_end<h>191_word_>496_word_end<실행됩니다 컨트롤이 >171_word_>496_word_end<< >326_word_>496_word_end<<로 전달됩니다>496_word_end<. 일치하지 않으면 오류가 전파됩니다 마치 마치 마치>661_word_end<절 전혀 없었다 : 오류는 둘러싸여 블록>661_word_end<없음 기능의 처리를 중단합니다.

>325_word_>496_word_end<<>677_word_end<>544_word_end<이 될 수 있습니다 에 표시된 사람 중 하나부록 에이. 카테고리 >544_word_end<은 해당 범주 내에서 오류와 일치합니다. 특별 >677_word_end< >544_word_end<기타을 제외한 모든 오류 유형 일치query_canceled. (가능하지만 종종 현명히, 함정query_canceledby >544_word_end<.) >677_word_end< >544_word_end<은 사례에 민감하지 않습니다.

선택한 내에서 새 오류가 발생하는 경우h>191_word_>496_word_end<, 잡을 수 없습니다 이것으로>661_word_end<조항 전파. 주변>661_word_end<조항을 잡을 수 있습니다.

오류가 AN에 의해 잡히면>661_word_end<절의 조항,.>164_word_>496_word_end<<함수는 그대로 유지됩니다 오류가 발생했을 때였지만 모든 변경 블록 내의 영구 데이터베이스 상태가 롤백됩니다. 처럼 예를 들어이 조각을 고려하십시오 :

mytab에 삽입 (FirstName, lastName) 값 ( 'Tom', 'Jones');
    >660_word_end<하다
        mytab set firstName = 'joe'여기서 lastName = 'Jones';
        x : = x + 1;
        Y : = x / 0;
    >661_word_end<
        Division_by_zero가있을 때
            'Caught Division_by_Zero'를 통지하십시오.
            반환 x;
    끝;

윈 토토가 할당에 도달 할 때y, A로 실패합니다.division_by_zero오류. 이것은 잡힐 것입니다 그만큼>661_word_end<>257_word_>496_word_end<< 가치 에 반환>190_word_>496_word_end<<성명서 의 증분 값이 되십시오x의 효과업데이트명령 롤백되었습니다. 그만큼삽입블록 앞의 명령은 롤백되지 않으므로 최종 결과 데이터베이스에 포함된다는 것입니다.Tom Jones아님Joe 존스.

팁 :an을 포함하는 블록>661_word_end<절은 훨씬 더 많습니다 블록이없는 블록보다 들어가서 나가는 데 비용이 많이 듭니다. 따라서 사용하지 마십시오>661_word_end<필요없이.

예 35-1. >661_word_end<업데이트/삽입

이 예제는 >661_word_end< 처리를 사용하여 하나를 수행합니다업데이트>468_word_>496_word_end<<삽입, 적절한.

테이블 DB 생성 (>589_word_end589_word_end219_word_>496_word_end<<를 반환합니다
$$
>660_word_end<하다
    고리
        DB SET B = 데이터를 업데이트합니다. 여기서 a = 키;
        그럼 발견된다면
            반품;
        끝 IF;

        >660_word_end<하다
            db (a, b) 값 (키, 데이터)에 삽입;
            반품;
        그때 고유 한 >661_word_end<
            - 아무것도하지 않습니다
        끝;
    엔드 >443_word_>496_word_end<<;
끝;
$$
언어 plpgsql;

merge_db (1, 'david')를 선택하십시오.
merge_db (1, 'dennis')를 선택하십시오.