您好,我有一个表,其中有一个名为 ImageID 的主键,我想创建另一列
也是主键,PropertyID 表示复合键
这是代码,但它向我显示了此错误“#1064 - 您的 SQL 语法有错误;请检查与您的 MySQL 服务器版本相对应的手册,以了解在 '( 附近使用的正确语法PropertyID INT, ImageID INT 主键 (PropertyID, ImageID) )' 在行“
此外,ImageID 已经是主键,但具有 varchar(15) 规范。
Alter TABLE properties (
PropertyID INT,
ImageID INT,
primary key (PropertyID, ImageID)
);
最佳答案
每个表只能有1个主键。您只能有一个主键,但主键中可以有多个列。
取自 W3Schools:
CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT pk_PersonID PRIMARY KEY (P_Id,LastName)
)
此处唯一的主键是 pk_PersonID,但已声明 pk_PersonID 由 P_Id 和 LastName 组成。
唯一索引可能就是您正在寻找的。这意味着需要唯一的值,并且像索引一样运行,因为它可以加快查询速度。
关于mysql - 使两列成为主键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23453098/