2011-01-20 81 views

Trả lời

121

Cả hai từ đồng nghĩa là TINYINT (1).

+9

Điều Adam nói. Không có loại BOOLEAN thực tế nào trong MySQL. – Mchl

3

Một điều tôi chỉ nhận thấy - với một cột định nghĩa là BOOL trong MySql, Spring Roo một cách chính xác tạo ra mã Java để unmarshall các giá trị cho một Boolean , vì vậy có lẽ việc chỉ định BOOL có thể thêm một số giá trị, ngay cả khi nó chỉ trong bản chất của một gợi ý về mục đích sử dụng của cột.

17

Được thiết lập trong các nhận xét khác, chúng là từ đồng nghĩa cho TINYINT (1).

* Vì vậy, tại sao chúng làm phiền sự khác biệt giữa bool, boolean, tiny * int (1)?

Chủ yếu là ngữ nghĩa.

Bool và Boolean: Mặc định MySQL chuyển đổi các loại này thành loại tinyint. Mỗi câu lệnh MySQL được thực hiện trong khoảng thời gian viết bài này, "Chúng tôi dự định thực hiện xử lý kiểu boolean đầy đủ, phù hợp với SQL chuẩn, trong bản phát hành MySQL trong tương lai".

0 = FALSE 1 = TRUE

TINYINT: Chiếm một byte; dao động từ -128 đến +127; hoặc, 0 - 256.


Thường lớn lên trong sự so sánh này: Sau MySQL 5.0.3 - Bit: Sử dụng 8 byte và các cửa hàng chỉ dữ liệu nhị phân.

+1

Điều này không thực sự trả lời câu hỏi. Sự khác biệt giữa 'BOOL' và' BOOLEAN' là gì? – nalply

+7

Các bài viết trước đó đã được thiết lập rằng cả hai đều đồng nghĩa với TINYINT (1). Lý tưởng nhất, câu hỏi tiếp theo sẽ là "Tại sao, sau đó, chúng có phân biệt giữa các kiểu dữ liệu không?" – Sixthfore

+1

@Sixthấp vào 'Bit: Sử dụng 8 byte và chỉ lưu trữ dữ liệu nhị phân.' là thông tin không chính xác. Khi bạn thêm một cột bit vào bảng của bạn, nó sẽ chiếm toàn bộ một byte trong mỗi bản ghi, không chỉ một bit. Khi bạn thêm một cột bit thứ hai, nó sẽ được lưu trữ trong cùng một byte. Cột bit thứ chín sẽ yêu cầu một byte lưu trữ thứ hai. – Kolyunya

Các vấn đề liên quan