2010-09-29 49 views
1

是否可以为一个表设置多个主键?如何为表设置多个主键?

如果它可能作为组合键 - 那么它如何与应用程序一起使用?

ADVANTAGES。??

+0

可能重复[是否可以在一个表中创建两个主键](http://stackoverflow.com/questions/3767257/is-this-possible-to-made-two-primary-key -in-one-table) – Thilo 2010-09-29 09:27:15

回答

0

你不能。在表上只能有一个主键(这就是为什么它被称为主...)。你能做的唯一一件事就是指定在多列主键(但是这取决于数据库的布局:

CREATE TABLE Persons 
(
    P_Id int NOT NULL, 
    LastName varchar(255) NOT NULL, 
    FirstName varchar(255), 
    Address varchar(255), 
    City varchar(255), 
    CONSTRAINT pk_PersonID PRIMARY KEY (P_Id,LastName) 
) 
+0

是复合键吗?如何使用..?/ – pvaju896 2010-09-29 09:18:49

4

不,那是不可能的

不过:

你可以有多在主键一个字段。

您还可以添加唯一索引,以不在主键字段。

0

不,你不能有比多e表中的主键。是的,主键可以由多个字段组成,但考虑到您的问题,我不认为这是您的需要。 我不知道它是什么,你到底需要,但主键有你可能在其他领域找几个功能:

立新世纪:如果您需要另一个领域的有在所有记录的独特价值,你可以申请一个UNIQUE约束:

ALTER TABLE <table identifier> 
    ADD [ CONSTRAINT <constraint identifier> ] 
    UNIQUE (<column expression> {, <column expression>}...) 

速度:如果您有搜索经常一个领域,需要加快您的查询,您可以添加一个索引到那个领域。

CREATE INDEX <index identifier> 
    ON <table identifier> (<field name>)