Quero definir explicitamente um limite para o número de dígitos que podem ser inseridos no campo "pk_flat_id"
Sua definição de tabela atual não impor um "limite de tamanho" de qualquer forma. No MySQL o parâmetro para o
int
tipo de dados é apenas uma dica para aplicativos na largura de exibição da coluna ao exibir isto. Você pode armazenar o valor 2147483647 em um
int(1)
sem quaisquer problemas. Se você quiser limitar os valores a serem armazenados em uma coluna inteira, você pode usar uma restrição de verificação:
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)
);