Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

MySQL 8 bỏ qua độ dài số nguyên

Đây là thay đổi được ghi lại trong Ghi chú phát hành MySQL 8.0.19 :

"Chiều dài" của một cột số nguyên không có nghĩa gì cả. Một cột của int(11) giống với int(2) hoặc int(40) . Tất cả chúng đều là kiểu dữ liệu số nguyên 32 bit có kích thước cố định. Chúng hỗ trợ cùng một giá trị tối thiểu và tối đa.

"Chiều dài" của các cột số nguyên là một đặc điểm khó hiểu của MySQL trong nhiều năm. Nó chỉ là một gợi ý ảnh hưởng đến chiều rộng hiển thị, không ảnh hưởng đến bộ nhớ hoặc phạm vi giá trị. Thực tế, nó chỉ quan trọng khi bạn sử dụng ZEROFILL tùy chọn.

mysql> create table t ( i1 int(6) zerofill, i2 int(12) zerofill );
Query OK, 0 rows affected (0.02 sec)

mysql> insert into t set i1 = 123, i2 = 123;
Query OK, 1 row affected (0.00 sec)

mysql> select * from t;
+--------+--------------+
| i1     | i2           |
+--------+--------------+
| 000123 | 000000000123 |
+--------+--------------+
1 row in set (0.00 sec)

Vì vậy, thật tốt khi số nguyên gây hiểu lầm "length" hiện không được chấp nhận và bị loại bỏ. Nó đã gây ra sự nhầm lẫn trong nhiều năm.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Các ràng buộc ON DELETE CASCADE được xử lý theo thứ tự nào?

  2. Chuẩn bị các câu lệnh có bảo mật cơ sở dữ liệu của bạn không?

  3. Chuyển đổi cơ sở dữ liệu trong một nhóm kết nối trong nodejs MySQL

  4. # 1071 - Khóa được chỉ định quá dài; độ dài khóa tối đa là 1000 byte

  5. Làm cách nào tôi có thể sử dụng thực thi để chèn vào MySQL một danh sách các từ điển bằng Python