При создании объекта я хотел использовать серийный номер в качестве типа столбца, но машинописный текст выдает ошибку: Тип «smallserial» не может быть присвоен типу
Я проверил другие серийные типы и получил ту же ошибку. Этих типов нет в наличии? Я использую базу данных Postgres.
@PrimaryGeneratedColumn({ type: 'smallserial'})
id: number
Это потому, что *serial на самом деле не является типом, это макрос, который выполняет несколько действий, как описано в ссылке. Вероятно, вы захотите использовать базовый тип smallint
, integer
и bigint
для smallserial
, serial
и bigserial
соответственно.
Типы данных smallserial, Serial и bigserial не являются настоящими типами, а являются просто удобным средством записи для создания столбцов уникальных идентификаторов (аналогично свойству AUTO_INCREMENT, поддерживаемому некоторыми другими базами данных).
Соответствующие типы — smallint, int и bigint.
Например, для ссылки на последовательный первичный ключ используется целое число. some_id integer not null references some_table(id)
.
Зачем тебе это? Для идентификаторов вы можете/можете/должны использовать столбец IDENTITY, используя INT, SMALLINT или что-то еще, что вам нужно.