Tôi muốn đặt giới hạn rõ ràng cho số chữ số có thể được chèn vào trường "pk_flat_id"
Định nghĩa bảng hiện tại của bạn không áp đặt "giới hạn kích thước" theo bất kỳ cách nào. Trong MySQL, tham số cho int
kiểu dữ liệu chỉ là một gợi ý cho các ứng dụng trên chiều rộng hiển thị của cột khi hiển thị nó.
Bạn có thể lưu trữ giá trị 2147483647 trong int(1)
mà không có bất kỳ vấn đề.
Nếu bạn muốn giới hạn các giá trị được lưu trữ trong một cột số nguyên, bạn có thể sử dụng ràng buộc kiểm tra:
CREATE TABLE flat_10
(
pk_flat_id bigint DEFAULT 1,
rooms integer NOT NULL,
room_label CHAR(1) NOT NULL,
PRIMARY KEY (flat_id),
constraint valid_number
check (pk_flat_id <= 999999999)
);