자동 증가 컬럼은 테이블의 새로운 데이터가 추가될 때마다 컬럼의 값을 자동으로 증가시 키는 속성입니다. 자동 증가 속성은 프라이머리 키 속성과 함께 자주 사용합니다. 또한 자 동 증가 컬럼은 UNIQUE 데이터가 들어가는 속성을 가집니다.
09.6.1 쿼리 실습
자동 증가 속성은 컬럼의 타입이 INT, TINYINT, SMALLINT형의 정수형 데이터 타입이 어야 합니다.
| 예제 쿼리 |
CREATE TABLE members (
Id int NOT NULL AUTO_INCREMENT,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
PRIMARY KEY (Id)
);
자동 증가 값 초기화
자동으로 증가되는 AUTO_INCREAMENT 속성은 새로운 데이터를 신규로 입력할 때 +1씩 증가합니다. + 1씩 증가되는 카운트 값은 별도로 유지됩니다. 이전에 입력된 데이터 를 삭제하더라도 자동 증가되는 값에는 변화가 없습니다. 자동 증가 값은 INSERT 등의 데이터를 추가할 때만 변동됩니다. 만일 현재 유지되고 있는 자동 증가 값을 변경하고 싶을 경우에는 ALTER 키워드를 통하 여 자동 증가 값을 초기화할 수 있습니다.
| 예제 쿼리 |
ALTER TABLE members AUTO_INCREMENT=0;
09.6.2 PHP 실습
PHP 코드를 통하여 자동 증가 속성을 처리해 보도록 합니다.
| PHP 예제 | mysql.class.php 파일에 메서드 예제를 추가합니다.
public function autoIncrementClear($tbname,$inc=0)
{
if ($tbname) {
$queryString = "ALTER TABLE $tbname AUTO_INCREMENT=$inc;";
// 쿼리를 전송합니다.
if (mysqli_query($this->dbcon, $queryString)=== TRUE) {
$this->msgEcho("쿼리성공] ".$queryString);
$this->msgEcho(" 자동증가값 초기화!");
return true;
} else {
$this->msgEcho("Error] ".$queryString);
return false;
}
} else {
$this->msgEcho("Error] 테이블 이름이 없습니다.");
return false;
}
}
예제 파일 | attr-04.php
<?php
include "dbinfo.php";
include "mysql.class.php";
// ++ Mysqli DB 연결.
$db = new JinyMysql();
$tbname = "members";
// 테이블 자동증가 값을 초기화 합니다.
$db->autoIncrementClear($tbname,"100");
?>
화면 출력
mysql connected!
쿼리성공] ALTER TABLE members AUTO_INCREMENT=100;
자동증가값 초기화!
100으로 초기화하면 앞으로 입력되는 자동 증가 값은 100부터 시작합니다.