如何正确创建复合主键 - MYSQL这是我正在使用的激烈设置的粗略过度简化。table_1并且table_2两者都有自动增量代理主键作为ID。info是一个包含有关table_1和的信息的表table_2。table_1 (id, field) table_2 (id, field, field)info ( ???, field)我试图决定,如果我应该做的主键info的ID从复合材料table_1和table_2。如果我这样做,哪一个最有意义呢?(在这个例子中,我将ID 11209与ID 437相结合)INT(9)11209437 (我可以想象为什么这很糟糕)VARCHAR (10) 11209-437 DECIMAL (10,4)11209.437或者是其他东西?将它用作MYSQL MYISAM数据库的主键可以吗?
3 回答
胡说叔叔
TA贡献1804条经验 获得超8个赞
我会使用复合(多列)键。
CREATE TABLE INFO ( t1ID INT, t2ID INT, PRIMARY KEY (t1ID, t2ID))
这样,您可以将t1ID和t2ID作为指向其各自表的外键。
喵喔喔
TA贡献1735条经验 获得超5个赞
语法是CONSTRAINT constraint_name PRIMARY KEY(col1,col2,col3)
例如::
CONSTRAINT pk_PersonID PRIMARY KEY (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)
添加回答
举报
0/150
提交
取消