Oracle SQL автоинкремент для символа - PullRequest
2 голосов
/ 22 марта 2019

Я использую Oracle SQL Developer для создания базы данных, Я получил таблицу городов с city_id [PK] и city_name, Я хочу сделать свой city_id в виде символа, и мои данные будут выглядеть так:

|----------------------|
| CT01 | MEXICO CITY   | 
| CT02 | NEW YORK CITY |
| CT03 | LONDON        |
| CT04 | SYDNEY        |
|----------------------|

Кроме того, я хотел бы, чтобы мой первичный ключ имел функцию автоинкремента, что означает, что когда я вставляю имя города, идентификатор города увеличивается на 1, в этом случае, если я вставлю 'HONG KONG', его city_id будет автоматически установлен как 'CT05'.

Я провел онлайн-исследование, которое, как я обнаружил, использует триггер, но он работает только для данных числового типа.


Дополнительный вопрос: при создании таблицы, если мой первичный ключ - число, я хотел бы сохранить его в таком формате, как этот -> 000001 что я должен сделать, чтобы мои данные выглядели так?

Спасибо.

1 Ответ

7 голосов
/ 22 марта 2019

Не делайте этого.

Первичные ключи (и ключи в целом) используются для обеспечения уникальности строк.Они не должны быть сексуальными или красивыми.Это внутренние идентификаторы.Если вы пытаетесь это сделать, это означает, что вы хотите выставить значение PK где-нибудь ... что-то, что не является целью PK в первую очередь.

Если вы действительно хотитекрасивый идентификатор, затем вы можете создать дополнительный «сгенерированный» столбец с хорошим форматом, как вы хотите.Этот столбец может включать дополнительное форматирование, такое как тире (например, SSN), префиксы (ваш случай), суффиксы и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...