使用多个列检查唯一性,包括mysql表中字段的子字符串

时间:2016-01-13 00:57:52

标签: mysql

我有一个像这样的数据库表。

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),但它没有用。 我怎么能实现这个?

1 个答案:

答案 0 :(得分:0)

ALTER TABLE `ItemX` ADD UNIQUE `ui`(`code`, `size`, `type`);

我不确定MySQL是否允许您在创建唯一约束时传入列的函数。如果您确实只想使用code列的前15个字符,则可能需要为此目的创建新列。