Потому что position это функция, чтобы использовать как название таблицы нужно экранировать кавычками.
А еще лучше не называть ничего в базе словами которые могут трактоваться базой как внутренняя функция или зарезервированное слово.
А просто почему не поменять PK на нормального размера integer?
Какой он вообще сейчас что там переполнение скоро?
По дефолту ведь делается на 2 лярда, int(10) или 11 или вроде того. Почти везде.