CREATE TABLE `order_detail` ( `order_id` BIGINT(20) NOT NULL, `product_id` BIGINT(20) NOT NULL, `amount` INT(11) NOT NULL, PRIMARY KEY (`order_id`,`product_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
代码中的PRIMARY KEY指定了组合主键,同时指定了order_id和product_id两列为主键。这样,在查询时可以使用这两列作为查询条件,对表进行索引。
需要注意的是,组合主键并不是单独的主键,而是由多个列共同组成的主键。因此,在建表时需要注意主键的顺序,一般会将最常用的列放在最前面。
组合主键的优点是可以提高查询效率,尤其在多表关联查询中,可以有效地减少联表操作的次数,从而提高查询速度。
同时,组合主键还可以保证数据的唯一性,当指定的列组合已存在时,不能再次插入相同的数据,从而保证数据的正确性。
如果需要修改组合主键,可以使用ALTER TABLE语句进行修改,如下所示:
ALTER TABLE `order_detail` DROP PRIMARY KEY, ADD PRIMARY KEY (`product_id`,`order_id`);
这样就可以将组合主键的顺序修改为product_id和order_id了。