提问者:小点点

防止每个给定项目重复MySQL


我有这个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,那么它应该不会有任何问题地插入它。我的问题是,如何防止每个项目重复?


共1个答案

匿名用户

你似乎想要一个独特的约束。

ALTER TABLE d_hits
            ADD UNIQUE (projectid,
                        data);