Серийные типы, такие как smallserial, Serial, bigserial, недоступны в TypeORM?

При создании объекта я хотел использовать серийный номер в качестве типа столбца, но машинописный текст выдает ошибку: Тип «smallserial» не может быть присвоен типу

Я проверил другие серийные типы и получил ту же ошибку. Этих типов нет в наличии? Я использую базу данных Postgres.

@PrimaryGeneratedColumn({ type: 'smallserial'})
id: number

Зачем тебе это? Для идентификаторов вы можете/можете/должны использовать столбец IDENTITY, используя INT, SMALLINT или что-то еще, что вам нужно.

Frank Heikens 30.04.2024 20:47

Это потому, что *serial на самом деле не является типом, это макрос, который выполняет несколько действий, как описано в ссылке. Вероятно, вы захотите использовать базовый тип smallint, integer и bigint для smallserial, serial и bigserial соответственно.

Adrian Klaver 30.04.2024 21:09
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
0
2
73
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Из 8.1.4 Серийные типы.

Типы данных smallserial, Serial и bigserial не являются настоящими типами, а являются просто удобным средством записи для создания столбцов уникальных идентификаторов (аналогично свойству AUTO_INCREMENT, поддерживаемому некоторыми другими базами данных).

Соответствующие типы — smallint, int и bigint.

Например, для ссылки на последовательный первичный ключ используется целое число. some_id integer not null references some_table(id).

Другие вопросы по теме