자동 증가 컬럼은 테이블의 새로운 데이터가 추가될 때마다 컬럼의 값을 자동으로 증가시 키는 속성입니다. 자동 증가 속성은 프라이머리 키 속성과 함께 자주 사용합니다. 또한 자 동 증가 컬럼은 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부터 시작합니다.