这里是我正在使用的一个紧张设置的一个粗略的过度简化。table_1和table_2都有自动递增的代理主键作为ID。Info是一个包含table_1和table_2信息的表。
table_1 (id, field)
table_2 (id, field, field)
info ( ???, field)
我试图决定我是否应该使信息的主键从table_1和table_2的id的组合。如果我要这么做,哪个更有意义?
(在本例中,我将ID 11209与ID 437结合在一起)
INT(9) 11209437(我可以想象为什么这是坏的)
Varchar (10) 11209-437
十进制(10,4)11209.437
还是别的什么?
这将是很好的使用这作为一个MYSQL MYISAM DB的主键?
语法为CONSTRAINT constraint_name PRIMARY KEY(col1,col2,col3),例如:
约束pk_PersonID主键(P_Id,LastName)
上面的例子将工作,如果你正在写它,而你正在创建表,例如:
CREATE TABLE person (
P_Id int ,
............,
............,
CONSTRAINT pk_PersonID PRIMARY KEY (P_Id,LastName)
);
要将此约束添加到现有表中,需要遵循以下语法
ALTER TABLE table_name ADD CONSTRAINT constraint_name PRIMARY KEY (P_Id,LastName)
语法为CONSTRAINT constraint_name PRIMARY KEY(col1,col2,col3),例如:
约束pk_PersonID主键(P_Id,LastName)
上面的例子将工作,如果你正在写它,而你正在创建表,例如:
CREATE TABLE person (
P_Id int ,
............,
............,
CONSTRAINT pk_PersonID PRIMARY KEY (P_Id,LastName)
);
要将此约束添加到现有表中,需要遵循以下语法
ALTER TABLE table_name ADD CONSTRAINT constraint_name PRIMARY KEY (P_Id,LastName)