В схеме таблицы customers столбец customer_id объявлен как INTEGER PRIMARY KEY, а name и city — как TEXT. Почему customer_id подходит на роль первичного ключа, а name или city — нет?
Значение customer_id уникально для каждой строки, а имена и города закономерно повторяются у разных клиентов
Столбцы TEXT не могут быть первичным ключом в SQLite, поэтому name и city автоматически исключаются из рассмотрения
Тип INTEGER обрабатывается быстрее, чем TEXT, поэтому числовые столбцы всегда становятся первичным ключом
SQLite выбирает первичный ключ самостоятельно по порядку объявления столбцов и берёт первый из них