自增复合主键
Auto Increment Composite Primary Key
我有一个要创建的 Access 数据库。我想使用 table 中的两列来创建主键。
Projectbl (ProjectID, ProjectRegion, other columns)
我希望 ProjectID
自动递增。没关系。到目前为止,每当我添加一个新项目时,ProjecID
都会自行递增。
我想在同一个 table 中创建一个新列,它将成为 ProjectRef
,其中新数字将是 ProjectID
和 ProjectRegion
的组合。
例如
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
那么只需从您拥有的列中计算它即可。
我有一个要创建的 Access 数据库。我想使用 table 中的两列来创建主键。
Projectbl (ProjectID, ProjectRegion, other columns)
我希望 ProjectID
自动递增。没关系。到目前为止,每当我添加一个新项目时,ProjecID
都会自行递增。
我想在同一个 table 中创建一个新列,它将成为 ProjectRef
,其中新数字将是 ProjectID
和 ProjectRegion
的组合。
例如
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
那么只需从您拥有的列中计算它即可。