Tutorial MySQL Pengurutan

Urutan adalah himpunan bilangan bulat 1, 2 3, … yang dihasilkan dalam rangka permintaan.Urutan yang sering digunakan dalam database karena banyak aplikasi membutuhkan setiap baris dalam sebuah tabel berisi nilai unik, dan urutan menyediakan cara mudah untuk menghasilkan mereka. Bab ini menjelaskan cara menggunakan urutan di MySQL .

Menggunakan kolom AUTO_INCREMENT :

Cara paling sederhana dalam MySQL menggunakan Sequences adalah untuk mendefinisikan kolom sebagai AUTO_INCREMENT dan meninggalkan sisanya dari hal-hal ke MySQL untuk mengurus .

Contoh :

Coba contoh berikut. Ini akan membuat tabel dan setelah itu akan memasukkan beberapa baris dalam tabel di mana tidak diperlukan untuk memberikan record ID karena auto bertambah oleh MySQL.

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)

Mendapatkan Nilai AUTO_INCREMENT :

LAST_INSERT_ID () adalah fungsi SQL, sehingga Anda dapat menggunakannya dari dalam setiap klien yang mengerti bagaimana mengeluarkan pernyataan SQL. script PERL dan PHH sebaliknya menyediakan fungsi eksklusif untuk mengambil nilai otomatis bertambah dari record terakhir.

PERL Contoh :

Gunakan atribut mysql_insertid untuk mendapatkan nilai AUTO_INCREMENT yang dihasilkan oleh query. Atribut ini diakses melalui sebuah menangani database atau menangani pernyataan, tergantung pada bagaimana Anda masalah query. Contoh berikut referensi itu melalui menangani database :

$dbh->do ("INSERT INTO insect (name,date,origin)
VALUES('moth','2001-09-14','windowsill')");
my $seq = $dbh->{mysql_insertid};

PHP Contoh :

Setelah mengeluarkan query yang menghasilkan nilai AUTO_INCREMENT, mengambil nilai dengan memanggil 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);

Ulang nomor suatu urutan yang ada :

Mungkin ada kasus ketika Anda memiliki banyak catatan dihapus dari tabel dan Anda ingin resequence semua catatan. Hal ini dapat dilakukan dengan menggunakan sebuah trik sederhana tetapi Anda harus sangat berhati-hati untuk melakukannya jika tabel Anda mengalami bergabung dengan tabel lainnya.

Jika Anda menentukan bahwa kolom AUTO_INCREMENT resequencing tidak dapat dihindari, cara untuk melakukannya adalah untuk drop kolom dari tabel, kemudian tambahkan lagi. Contoh berikut menunjukkan bagaimana nilai-nilai id nomor baru dalam tabel serangga menggunakan teknik ini :

mysql> ALTER TABLE insect DROP id;
mysql> ALTER TABLE insect
    -> ADD id INT UNSIGNED NOT NULL AUTO_INCREMENT FIRST,
    -> ADD PRIMARY KEY (id);

Mulai Sequence pada Nilai khusus :

Secara default MySQL akan dimulai urutan dari 1 tetapi Anda dapat menentukan nomor lain serta pada saat pembuatan tabel . Berikut ini adalah contoh di mana MySQL akan dimulai urutan dari 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
);

Atau, Anda dapat membuat tabel dan kemudian menetapkan nilai urutan awal dengan ALTER TABLE.

mysql> ALTER TABLE t AUTO_INCREMENT = 100;

	    

Leave a Reply

Your email address will not be published. Required fields are marked *