Rumah > pangkalan data > tutorial mysql > Dalam MySQL, apakah perbezaan antara SERIAL dan AUTO_INCRMENT?

Dalam MySQL, apakah perbezaan antara SERIAL dan AUTO_INCRMENT?

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Lepaskan: 2023-08-24 15:09:03
ke hadapan
1271 orang telah melayarinya

Dalam MySQL, apakah perbezaan antara SERIAL dan AUTO_INCRMENT?

Dalam MySQL, kedua-dua SERIAL dan AUTO_INCRMENT digunakan untuk mentakrifkan jujukan sebagai nilai lalai medan. Tetapi mereka berbeza secara teknikal.

Semua jenis data berangka kecuali BIT dan DECIMAL menyokong atribut AUTO_INCRMENT. Terdapat hanya satu medan AUTO_INCRMENT setiap jadual dan jujukan yang dijana oleh medan AUTO_INCRMENT dalam satu jadual tidak boleh digunakan dalam mana-mana jadual lain.

Harta ini memerlukan indeks UNIK pada medan untuk memastikan tiada pendua dalam jujukan. Secara lalai, urutan bermula pada 1 dan ditambah dengan 1 untuk setiap sisipan.

Contoh

mysql> Create Table Student(Student_id INT PRIMARY KEY NOT NULL AUTO_INCREMENT, Name Varchar(20));
Query OK, 0 rows affected (0.18 sec)
Salin selepas log masuk

Pertanyaan di atas mengisytiharkan Student_id AUTO_INCRMENT.

mysql> Insert Into Student(Name) values('RAM'),('SHYAM');
Query OK, 2 rows affected (0.06 sec)
Records: 2 Duplicates: 0 Warnings: 0

mysql> Select * from Student;
+------------+-------+
| Student_id | Name  |
+------------+-------+
|          1 | RAM   |
|          2 | SHYAM |
+------------+-------+
2 rows in set (0.00 sec)

mysql> Show Create Table Student\G
*************************** 1. row ***************************
      Table: Student
Create Table: CREATE TABLE `student` (
   `Student_id` int(11) NOT NULL AUTO_INCREMENT,
   `Name` varchar(20) DEFAULT NULL,
   PRIMARY KEY (`Student_id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1
1 row in set (0.00 sec)
Salin selepas log masuk

Sebaliknya, NILAI DEFAULT SIRI adalah singkatan untuk NOT NULL AUTO_INCRMENT UNIQUE KEY. Kata kunci NILAI DEFAULT SIRI disokong untuk jenis angka integer seperti TINYINT, SMALLINT, MEDIUMINT, INT dan BIGINT.

Contoh

mysql> Create Table Student_serial(Student_id SERIAL, Name VArchar(20));
Query OK, 0 rows affected (0.17 sec)

mysql> Insert into Student_serial(Name) values('RAM'),('SHYAM');
Query OK, 2 rows affected (0.12 sec)
Records: 2 Duplicates: 0 Warnings: 0

mysql> Select * from Student_serial;
+------------+-------+
| Student_id | Name |
+------------+-------+
|          1 | RAM   |
|          2 | SHYAM |
+------------+-------+
2 rows in set (0.00 sec)

mysql> Show Create Table Student_serial\G
*************************** 1. row ***************************
      Table: Student_serial
Create Table: CREATE TABLE `student_serial` (
   `Student_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
   `Name` varchar(20) DEFAULT NULL,
   UNIQUE KEY `Student_id` (`Student_id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1
1 row in set (0.00 sec)
Salin selepas log masuk

Atas ialah kandungan terperinci Dalam MySQL, apakah perbezaan antara SERIAL dan AUTO_INCRMENT?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan