如何正确创建复合主键 - MYSQL

如何正确创建复合主键 - 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_1table_2。如果我这样做,哪一个最有意义呢?
(在这个例子中,我将ID 11209与ID 437相结合)

INT(9)11209437 (我可以想象为什么这很糟糕)
VARCHAR (10) 11209-437 
DECIMAL (10,4)11209.437

或者是其他东西?

将它用作MYSQL MYISAM数据库的主键可以吗?


泛舟湖上清波郎朗
浏览 4492回答 3
3回答

胡说叔叔

我会使用复合(多列)键。CREATE TABLE INFO (     t1ID INT,     t2ID INT,     PRIMARY KEY (t1ID, t2ID))这样,您可以将t1ID和t2ID作为指向其各自表的外键。

喵喔喔

语法是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)
打开App,查看更多内容
随时随地看视频慕课网APP