MySQL数据库支持多个主键的约束,用于确保表中的记录唯一标识。当一个表中有多个字段组合起来可以唯一确定一条记录时,可以使用多个主键来约束这些字段。
CREATE TABLE users (user_id INT NOT NULL,email VARCHAR(255) NOT NULL,phone VARCHAR(20) NOT NULL,PRIMARY KEY (user_id, email));
在上面的创建表语句中,我们定义了两个主键分别是user_id和email,这意味着每个用户的user_id和email的组合必须唯一。插入重复的记录会导致出错。
INSERT INTO users (user_id, email, phone) VALUES(1, 'john@example.com', '1234567890'),(2, 'jane@example.com', '0987654321'),(3, 'john@example.com', '1112223333'); --出错,重复主键
多个主键的约束也可以在修改表结构时使用:
ALTER TABLE users ADD PRIMARY KEY (user_id, phone);
在修改表结构时,我们增加了一个主键的约束,它由user_id和phone组成。如果在修改表结构之前已经存在重复的记录,则会导致出错。
总之,使用多个主键的约束可以确保表中的记录唯一性,但需要谨慎使用,因为它可以导致性能和复杂性方面的问题。