Computer >> Máy Tính >  >> Lập trình >> MySQL

Giới hạn của auto_increment (số nguyên) trong MySQL là gì?

Giới hạn của số nguyên auto_increment phụ thuộc vào kiểu dữ liệu cột. Hiển thị như sau:

The data type TINYINT range is 127
The data type UNSIGNED TINYINT range is 255
The data type SMALLINT range is 32767
The data type UNSIGNED SMALLINT range is 65535
The data type MEDIUMINT range is 8388607
The data type UNSIGNED MEDIUMINT range is 16777215
The data type INT range is 2147483647
The data type UNSIGNED INT range is 4294967295
The data type BIGINT range is 9223372036854775807
The data type UNSIGNED BIGINT range is 18446744073709551615

Hãy để chúng tôi lấy một ví dụ về TINYINT. Nếu bạn vượt quá 127, thì MySQL sẽ xuất hiện lỗi.

Đầu tiên chúng ta hãy tạo một bảng. Truy vấn để tạo một bảng như sau. Đây, ID là auto_incerement:

mysql> create table LimitOfAutoIncrement
   -> (
   -> Id TINYINT NOT NULL AUTO_INCREMENT,
   -> PRIMARY KEY(Id)
   -> );
Query OK, 0 rows affected (0.68 sec)

Chỉ chèn 127 bản ghi là giới hạn của auto_increment trong TINYINT. Truy vấn như sau:

mysql> insert into LimitOfAutoIncrement values(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),();
Query OK, 127 rows affected (0.20 sec)
Records: 127 Duplicates: 0 Warnings: 0

Hiển thị tất cả các bản ghi từ bảng bằng cách sử dụng câu lệnh select. Truy vấn như sau:

mysql> select *from LimitOfAutoIncrement;

Sau đây là kết quả:

+-----+
| Id  |
+-----+
|   1 |
|   2 |
|   3 |
|   4 |
|   5 |
|   6 |
|   7 |
|   8 |
|   9 |
|  10 |
|  11 |
|  12 |
|  13 |
|  14 |
|  15 |
|  16 |
|  17 |
|  18 |
|  19 |
|  20 |
|  21 |
|  22 |
|  23 |
|  24 |
|  25 |
|  26 |
|  27 |
|  28 |
|  29 |
|  30 |
|  31 |
|  32 |
|  33 |
|  34 |
|  35 |
|  36 |
|  37 |
|  38 |
|  39 |
|  40 |
|  41 |
|  42 |
|  43 |
|  44 |
|  45 |
|  46 |
|  47 |
|  48 |
|  49 |
|  50 |
|  51 |
|  52 |
|  53 |
|  54 |
|  55 |
|  56 |
|  57 |
|  58 |
|  59 |
|  60 |
|  61 |
|  62 |
|  63 |
|  64 |
|  65 |
|  66 |
|  67 |
|  68 |
|  69 |
|  70 |
|  71 |
|  72 |
|  73 |
|  74 |
|  75 |
|  76 |
|  77 |
|  78 |
|  79 |
|  80 |
|  81 |
|  82 |
|  83 |
|  84 |
|  85 |
|  86 |
|  87 |
|  88 |
|  89 |
|  90 |
|  91 |
|  92 |
|  93 |
|  94 |
|  95 |
|  96 |
|  97 |
|  98 |
|  99 |
| 100 |
| 101 |
| 102 |
| 103 |
| 104 |
| 105 |
| 106 |
| 107 |
| 108 |
| 109 |
| 110 |
| 111 |
| 112 |
| 113 |
| 114 |
| 115 |
| 116 |
| 117 |
| 118 |
| 119 |
| 120 |
| 121 |
| 122 |
| 123 |
| 124 |
| 125 |
| 126 |
| 127 |
+-----+
127 rows in set (0.00 sec)

Bây giờ bạn không thể chèn bản ghi cho auto_increment. Nếu bạn cố gắng thì sẽ xảy ra lỗi:

mysql> insert into LimitOfAutoIncrement values();
ERROR 1062 (23000): Duplicate entry '127' for key 'PRIMARY'