是否有可能在一个表中创建两个主键
答
你只能有1个主键,但:
- 你可以结合多个列是主键(也许是这一点,你已经看到了)
- 主键不需要是自动增量,它只需要是唯一的
- 您可以添加多个索引到一个或多个colums以加快SELECT语句(但减慢INSERT/UPDATE)
- 这些索引可以标记为唯一,至极就是他们不会让你插入第二行与索引字段相同的内容(就像一个主键)
答
您可以使用多个列这样你的主键:
CREATE TABLE
newTable
(field1 INT(11)
, field2 INT(11)
, field3 VARCHAR(5)
, field4 BLOB
, PRIMARY KEY (field2, field1, field3) <====
)
答
不,但除了PRIMARY KEY以外,您还可以在表上使用其他UNIQUE索引。 UNIQUE + NOT NULL与主键基本相同。
您所看到的可能是一个复合主键(构成唯一键的多个列)。
答
一个表可以有一个PRIMARY键,它可以由一个或多个列组成。一个表也可以定义一些额外的键,如UNIQUE KEY约束。
从描述中不清楚您是在查看定义了多个键的表,还是在查看具有多列PRIMARY KEY的表。
答
使用复合主键...
例如
CREATE TABLE table1 (
first_id int unsigned not null,
second_id int unsigned not null auto_increment,
user_id int unsigned not null,
desc text not null,
PRIMARY KEY(first_id, second_id));
此外,检查出的例子here
我也看到了这一点。但在SQL Server中。 – 2010-09-22 07:48:57