Heim > Datenbank > MySQL-Tutorial > Was ist in MySQL der Unterschied zwischen SERIAL und AUTO_INCRMENT?

Was ist in MySQL der Unterschied zwischen SERIAL und AUTO_INCRMENT?

WBOY
Freigeben: 2023-08-24 15:09:03
nach vorne
1098 Leute haben es durchsucht

Was ist in MySQL der Unterschied zwischen SERIAL und AUTO_INCRMENT?

In MySQL werden sowohl SERIAL als auch AUTO_INCRMENT verwendet, um eine Sequenz als Standardwert eines Feldes zu definieren. Aber sie sind technisch unterschiedlich.

Alle numerischen Datentypen außer BIT und DECIMAL unterstützen das AUTO_INCRMENT-Attribut. Es kann nur ein AUTO_INCRMENT-Feld pro Tabelle geben und Sequenzen, die von einem AUTO_INCRMENT-Feld in einer Tabelle generiert werden, können in keiner anderen Tabelle verwendet werden.

Diese Eigenschaft erfordert einen UNIQUE-Index für das Feld, um sicherzustellen, dass es in der Sequenz keine Duplikate gibt. Standardmäßig beginnt die Sequenz bei 1 und wird bei jedem Einfügen um 1 erhöht.

Beispiel

mysql> Create Table Student(Student_id INT PRIMARY KEY NOT NULL AUTO_INCREMENT, Name Varchar(20));
Query OK, 0 rows affected (0.18 sec)
Nach dem Login kopieren

Die obige Abfrage deklariert 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)
Nach dem Login kopieren

Andererseits ist SERIAL DEFAULT VALUE die Abkürzung für NOT NULL AUTO_INCRMENT UNIQUE KEY. Das Schlüsselwort SERIAL DEFAULT VALUE wird für ganzzahlige numerische Typen wie TINYINT, SMALLINT, MEDIUMINT, INT und BIGINT unterstützt.

Beispiel

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)
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWas ist in MySQL der Unterschied zwischen SERIAL und AUTO_INCRMENT?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage