ใช้ลำดับ 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
ใช้คุณสมบัติ mysql_insertid ที่จะได้รับค่าของ AUTO_INCREMENT ตัวอย่างมีดังนี้
$dbh->do ("INSERT INTO insect (name,date,origin) VALUES('moth','2001-09-14','windowsill')"); my $seq = $dbh->{mysql_insertid};
ตัวอย่าง PHP
PHP ได้รับค่าลงในคำสั่ง SQL ที่ดำเนินการโดยคอลัมน์ AUTO_INCREMENT mysql_insert_id () ฟังก์ชัน
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;