The “BIGINT20″ specification isn’t a digit limit. It just means that when the data is displayed, if it uses less than 20 digits it will be left-padded with zeros. 2^64 is the hard limit for the BIGINT type, and has 20 digits itself, hence BIGINT20 just means everything less than 10^20 will be left-padded with spaces on display.
via Types in MySQL: BigInt20 vs Int20 etcc – Stack Overflow.