Oracle SQL char 自动递增

Oracle SQL auto increment for char

我正在使用 Oracle SQL Developer 来构建数据库, 我得到了一个城市 table 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'。

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


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

谢谢。

不要这样做。

主键(和一般的键)用于为行提供唯一性。他们不应该性感或好看。它们是内部标识符。如果您尝试这样做,则意味着您想要 公开 某处的 PK 值...这首先不是 PK 的目的。

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