Oracle SQL自动递增char

时间:2019-03-22 15:31:58

标签: sql oracle oracle-sqldeveloper auto-increment

我正在使用Oracle SQL Developer构建数据库, 我得到了一个带有city_id [PK]和city_name的城市表, 我希望将city_id设为字符,并且数据如下所示

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

此外,我想使主键具有自动递增功能,这意味着当我插入city_name时,city_id将增加1。 在这种情况下,如果我输入“ HONG KONG”,则它将city_id自动设置为“ CT05”。

我已经在线进行了一些研究,发现使用触发器,但是仅适用于数字类型数据。


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

谢谢。

1 个答案:

答案 0 :(得分:7)

不要这样做。

主键(和一般的键)用于为行提供唯一性。他们不应该性感或漂亮。它们是内部标识符。如果您尝试执行此操作,则意味着您要暴露某个地方的PK值……这并不是PK的初衷。

如果您确实想要一个漂亮的标识符,则可以根据需要创建一个带有漂亮格式的辅助“生成”列。该列可以包含其他格式,例如破折号(例如SSN),前缀(您的情况),后缀等。