Quiero establecer explícitamente un límite para la cantidad de dígitos que se pueden insertar en el campo "pk_flat_id"
Su definición de tabla actual no imponer un "límite de tamaño" de ninguna manera. En MySQL el parámetro para el int
el tipo de datos es solo una pista para aplicaciones en el ancho de visualización de la columna al mostrar eso.
Puede almacenar el valor 2147483647 en un int(1)
sin ningún problema.
Si desea limitar los valores que se almacenarán en una columna de enteros, puede usar una restricción de verificación:
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)
);