我有这个MySQL表
CREATE TABLE `d_hits` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`projectId` varchar(36) NOT NULL,
`data` text CHARACTER SET utf8,
`extras` text,
`status` varchar(50) NOT NULL DEFAULT 'notDone',
`evaluation` varchar(50) DEFAULT 'NONE',
`isGoldenHIT` tinyint(1) DEFAULT '0',
`goldenHITResultId` int(11) unsigned DEFAULT '0',
`notes` text,
`created_timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`updated_timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`isURL` tinyint(4) DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3561574 DEFAULT CHARSET=latin1;
我在这里的目标是防止数据库为给定项目创建重复的数据
。例如,具有projectId:123
的项目具有data:link1
,但如果我再次输入data:link1
,它将阻止它输入。但是,如果projectID是333
并且给定的数据仍然是Link1
,那么它应该不会有任何问题地插入它。我的问题是,如何防止每个项目重复?
你似乎想要一个独特的约束。
ALTER TABLE d_hits
ADD UNIQUE (projectid,
data);