Oracle SQL自动增量为char

问题描述 投票:2回答:1

我使用Oracle SQL Developer构建数据库,我有一个带有city_id [PK]和city_name的城市表,我希望将我的city_id作为char,我的数据如下所示

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

此外,我想让我的主键具有自动增量功能,这意味着当我插入city_name时,city_id将增加1,在这种情况下,如果我插入'HONG KONG',它的city_id将自动设置作为'CT05'。

我在网上做过一些研究,我发现使用触发器,但它只适用于数字类型的数据。


另外一个问题,当我创建一个表时,如果我的主键是一个数字,我想将它存储为这样的格式 - > 000001我该怎么做才能使我的数据看起来像这样?

谢谢。

sql oracle oracle-sqldeveloper auto-increment
1个回答
7
投票

不要这样做。

主键(和一般的键)用于为行提供唯一性。他们不应该是性感或漂亮的外观。它们是内部标识符。如果你试图这样做,那就意味着你想要在某个地方公开PK值......这首先不是PK的目的。

如果你真的想要一个漂亮的标识符,那么你可以根据需要创建一个具有漂亮格式的辅助“生成”列。该列可以包括额外的格式,例如破折号(例如SSN),前缀(您的情况),后缀等。

© www.soinside.com 2019 - 2024. All rights reserved.