我有一个像这样的数据库表。
CREATE TABLE ItemX(
code varchar(20),
size varchar(12),
type varchar(20),
PRIMARY KEY(code),
CONSTRAINT FOREIGN KEY F1(code) REFERENCES Item(code)
);
代码类似于" xxxx-xxxx-xxxx-0001"
在向表中添加行之前,我需要检查(first 15 characters of code,size,type)
是否唯一。
我试过了UNIQUE (SUBSTRING(code,1,15),size,type)
,但它没有用。
我怎么能实现这个?
答案 0 :(得分:0)
ALTER TABLE `ItemX` ADD UNIQUE `ui`(`code`, `size`, `type`);
我不确定MySQL是否允许您在创建唯一约束时传入列的函数。如果您确实只想使用code
列的前15个字符,则可能需要为此目的创建新列。