23.8.7.37 mysql_insert_id()
my_ulonglong mysql_insert_id(MYSQL *mysql)
설명
이전 INSERT
또는 UPDATE
문이 AUTO_INCREMENT
컬럼에 생성 된 값을 반환합니다. 이 함수는 AUTO_INCREMENT
필드를 포함하는 테이블에 INSERT
문을 실행했는지, INSERT
또는 UPDATE
를 사용하여 LAST_INSERT_ID(
에 의해 열 값을 설정 한 후 사용합니다. expr
)
mysql_insert_id()
의 반환 값은 다음 중 하나의 조건에서 명시 적으로 업데이트되지 않는 한 항상 0입니다.
값을
AUTO_INCREMENT
컬럼에 저장하는INSERT
문. 이것은 값이 특수 값NULL
이나0
을 컬럼에 저장하여 자동으로 생성되거나 명시 적 특수 않은 값인지에 관계없이 적용됩니다.여러 행
INSERT
문의 경우,mysql_insert_id()
는 처음에 성공적으로 삽입 된 자동 생성 된AUTO_INCREMENT
값을 반환합니다.성공적으로 삽입 된 행이없는 경우,
mysql_insert_id()
는 0을 반환합니다.INSERT ... SELECT
문이 실행되고 성공적으로 삽입 된 자동 생성 된 값이없는 경우,mysql_insert_id()
는 마지막에 삽입 된 행의 ID를 반환합니다.INSERT ... SELECT
문에서LAST_INSERT_ID(
를 사용하면expr
)mysql_insert_id()
는expr
을 반환합니다.LAST_INSERT_ID(
를 임의의 컬럼에 삽입하거나 임의의 컬럼을expr
)LAST_INSERT_ID(
에 업데이트함으로써expr
)AUTO_INCREMENT
값을 생성하는 문을INSERT
합니다.이전 문이 오류를 반환하면
mysql_insert_id()
값은 정의되지 않습니다.
mysql_insert_id()
의 반환 값은 다음 순서로 단순화 할 수 있습니다.
AUTO_INCREMENT
컬럼이 자동으로 생성 된 값을 성공적으로 삽입 된 경우, 그 첫 번째 값을 반환합니다.문에서
LAST_INSERT_ID(
이 행해진 경우 영향을받는 테이블에expr
)AUTO_INCREMENT
컬럼이있을 경우에도expr
을 반환합니다.반환 값은 사용 된 문에 따라 다릅니다.
INSERT
문 뒤에 불려 경우 :테이블에
AUTO_INCREMENT
컬럼이 테이블에 성공적으로 삽입 된 컬럼의 일부 명시적인 값이있을 경우, 마지막 명시적인 값을 반환합니다.
INSERT ... ON DUPLICATE KEY UPDATE
문 뒤에 불려 경우 :테이블에
AUTO_INCREMENT
컬럼이 테이블에 어떤 명시적인 올바르게 삽입 된 값 또는 일부 업데이트 된 값이있을 경우, 마지막에 삽입 된 또는 업데이트 된 값을 반환합니다.
이전 문이 AUTO_INCREMENT
값을 사용하지 않는 경우, mysql_insert_id()
는 0
을 반환합니다. 값을 후를 위해 보존 할 필요가있는 경우 값을 생성하는 문 바로 mysql_insert_id()
를 호출 해주세요.
mysql_insert_id()
값은 현재 클라이언트 연결에서 발행 된 문에 의해서만 영향을받습니다. 그것은 다른 클라이언트에 의해 발행 된 문에 영향을받지 않습니다.
LAST_INSERT_ID()
SQL 함수가 성공적으로 삽입 된 처음에 자동 생성 된 값을 저장합니다. LAST_INSERT_ID()
의 값은 서버에 보관되기 때문에이 함수는 문 사이에서 재설정되지 않습니다. mysql_insert_id()
와 마시자 1 개의 차이는 AUTO_INCREMENT
컬럼을 특정 특수가 아닌 값으로 설정 한 경우, LAST_INSERT_ID()
가 업데이트되지 않는 것입니다. 섹션 12.14 "정보 함수" 를 참조하십시오.
mysql_insert_id()
는 AUTO_INCREMENT
값을 생성하는 저장 프로 시저 CALL
문 다음에는 0
을 반환합니다. 이 경우, mysql_insert_id()
이 CALL
에 적용되며 프로 시저의 문에는 적용되지 않기 때문입니다. 프로 시저에서 LAST_INSERT_ID()
를 SQL 레벨에서 사용하여 AUTO_INCREMENT
값을 얻을 수 있습니다.
LAST_INSERT_ID()
와 mysql_insert_id()
의 차이의 이유는 LAST_INSERT_ID()
가 스크립트에서 사용하기 쉽고, mysql_insert_id()
는 AUTO_INCREMENT
컬럼에 일어난 일에 대해보다 정확한 정보를 제공하고자하는 것입니다.
반환 값
앞서의 설명으로 보여줍니다.
오류
없음.