自增复合主键

Auto Increment Composite Primary Key

我有一个要创建的 Access 数据库。我想使用 table 中的两列来创建主键。

Projectbl (ProjectID, ProjectRegion, other columns)

我希望 ProjectID 自动递增。没关系。到目前为止,每当我添加一个新项目时,ProjecID 都会自行递增。

我想在同一个 table 中创建一个新列,它将成为 ProjectRef,其中新数字将是 ProjectIDProjectRegion 的组合。

例如

ProjectID ProjectRegion OtherCol 
---------------------------------
1            500          ...
2            100          ...
3            200          ...
4            500          ...
5            500          ...
6            100          ...

我希望 table 看起来像那样

ProjectRef ProjectID ProjectRegion OtherCol 
--------------------------------------------
5001        1            500          ...
1002        2            100          ...
2003        3            200          ...
5004        4            500          ...
5005        5            500          ...
1006        6            100          ...

所以我正在尝试添加一个新项目:projectID 将自动递增到 7,但是 ProjectRef 将是 'ProjectReg'7,无论 ProjectReg 是什么。

我知道我可以用

创建一个复合键
CREATE TABLE 'Projectbl'
(
     ProjectID INT(10) NOT NULL AUTO_INCREMENT,
     ProjectRegion INT(10) NOT NULL,
     other columns VARCHAR(100),

     CONSTRAINT ProjectRef 
         PRIMARY KEY ('ProjectRegion', 'ProjectID')
)

如何在 table 中实际显示 ProjectRef

您根本不应该有 ProjectRef 列。这违反了数据库规范化的基本规则。如果您希望您的前端显示 ProjectRef 那么只需从您拥有的列中计算它即可。