Latest web development tutorials

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;