MySQL의 사용 순서
MySQL은 정수의 시퀀스는 다음과 데이터 테이블은 단지 하나의 필드 증분 주요 키가 될 수 있으므로 추가 필드가 자동으로 증가 구현하려면 1, 2, 3, ...,가 달성 MySQL의 서열을 사용할 수있다.
이 장에서 우리는 MySQL의 시퀀스를 사용하는 방법에 대해 설명합니다.
사용 AUTO_INCREMENT
MySQL의 간단한 방법은 MySQL의 AUTO_INCREMENT 컬럼의 사용을 정의하는 서열을 사용하는 것이다.
예
다음 예는 자동으로 증가시킬 수 ID의 값을 지정하지 않고 데이터 테이블 곤충, 곤충을 만듭니다.
mysql> CREATE TABLE insect -> ( -> id INT UNSIGNED NOT NULL AUTO_INCREMENT, -> PRIMARY KEY (id), -> name VARCHAR(30) NOT NULL, # type of insect -> date DATE NOT NULL, # date collected -> origin VARCHAR(30) NOT NULL # where collected ); Query OK, 0 rows affected (0.02 sec) mysql> INSERT INTO insect (id,name,date,origin) VALUES -> (NULL,'housefly','2001-09-10','kitchen'), -> (NULL,'millipede','2001-09-10','driveway'), -> (NULL,'grasshopper','2001-09-10','front yard'); Query OK, 3 rows affected (0.02 sec) Records: 3 Duplicates: 0 Warnings: 0 mysql> SELECT * FROM insect ORDER BY id; +----+-------------+------------+------------+ | id | name | date | origin | +----+-------------+------------+------------+ | 1 | housefly | 2001-09-10 | kitchen | | 2 | millipede | 2001-09-10 | driveway | | 3 | grasshopper | 2001-09-10 | front yard | +----+-------------+------------+------------+ 3 rows in set (0.00 sec)
AUTO_INCREMENT 값을 가져옵니다
MySQL 클라이언트에서는 테이블의 자동 증가에 삽입 된 마지막 값을 검색하기 위해 SQL LAST_INSERT_ID () 함수를 사용할 수 있습니다.
PHP 또는 Perl 스크립트도의 마지막에 삽입 테이블 자동 증가 값을 얻을 수있는 해당 기능을 제공합니다.
PERL 예
AUTO_INCREMENT의 값을 얻을 수 mysql_insertid 속성을 사용합니다. 다음 예는 다음과 같다 :
$dbh->do ("INSERT INTO insect (name,date,origin) VALUES('moth','2001-09-14','windowsill')"); my $seq = $dbh->{mysql_insertid};
PHP의 예
PHP는에 mysql_insert_id () 함수에 의해 SQL 문을 실행 AUTO_INCREMENT 컬럼에 값을 얻을 수 있습니다.
mysql_query ("INSERT INTO insect (name,date,origin) VALUES('moth','2001-09-14','windowsill')", $conn_id); $seq = mysql_insert_id ($conn_id);
리셋 순서
당신이 테이블에 여러 레코드의 데이터를 삭제하고 재 배열 할 수있는 나머지 데이터 AUTO_INCREMENT 컬럼을 희망하는 경우에, 당신은 다음, 성장에서 열을 삭제할 수 있습니다 그것을 달성하기 위해 다시 추가합니다. 당신이 새로운 기록을 제거 동시에 추가가 데이터 혼란이있을 수 있습니다 경우, 작업이 매우 조심해야합니다. 다음 동작은 다음과 같습니다
mysql> ALTER TABLE insect DROP id; mysql> ALTER TABLE insect -> ADD id INT UNSIGNED NOT NULL AUTO_INCREMENT FIRST, -> ADD PRIMARY KEY (id);
시퀀스의 시작 값을 설정
정상적인 상황에서 시퀀스 시작 1의 값,하지만 당신은 100의 시작 값을 지정해야하는 경우, 우리는 다음과 같은 성명을 얻을 수 있습니다 :
mysql> CREATE TABLE insect -> ( -> id INT UNSIGNED NOT NULL AUTO_INCREMENT = 100, -> PRIMARY KEY (id), -> name VARCHAR(30) NOT NULL, # type of insect -> date DATE NOT NULL, # date collected -> origin VARCHAR(30) NOT NULL # where collected );
아니면 다음 문에 의해 달성 성공에 테이블을 생성 할 수 있습니다 :
mysql> ALTER TABLE t AUTO_INCREMENT = 100;