use*_*618 2 sql oracle auto-increment oracle-sqldeveloper
我正在使用Oracle SQL Developer构建数据库,我得到了一个带有city_id [PK]和city_name的城市表,我希望将city_id设置为一个字符,并且我的数据如下
|----------------------|
| CT01 | MEXICO CITY |
| CT02 | NEW YORK CITY |
| CT03 | LONDON |
| CT04 | SYDNEY |
|----------------------|
Run Code Online (Sandbox Code Playgroud)
此外,我想使我的主键具有自动递增功能,这意味着当我插入city_name时,city_id将增加1,在这种情况下,如果我插入“ HONG KONG”,则会自动设置city_id为“ CT05”。
我已经在网上进行了一些研究,发现使用触发器,但是它仅适用于数字类型数据。
另一个问题,当我创建一个表时,如果我的主键是一个数字,我想将其存储为这样的格式-> 000001我应该怎么做才能使数据看起来像这样?
谢谢。
不要这样
主键(通常是键)用于为行提供唯一性。他们不应该性感或漂亮。它们是内部标识符。如果您尝试执行此操作,则意味着您想在某处公开 PK值……这并不是PK的初衷。
如果您确实想要一个漂亮的标识符,则可以根据需要创建一个带有好的格式的辅助“生成”列。该列可以包含额外的格式,例如破折号(例如SSN),前缀(您的情况),后缀等。