MYSQl 联合唯一约束 根据两个字段 唯一

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

 CREATE TABLE tb_month_report_chapter_main(
 	`id` INTEGER(11) NOT NULL AUTO_INCREMENT,
 	`record_month` char(7) NOT NULL ,
 	`customer_id` int(11) NOT NULL,
 	PRIMARY KEY(`id`),
	UNIQUE KEY `record_month` (`record_month`, `customer_id`) #创建了联合唯一约束 当月份和用户id有重复时会报错
 );

MYSQl 联合唯一约束 根据两个字段 唯一_第1张图片

  CREATE TABLE tb_month_report_chapter_main(
 	`id` INTEGER(11) NOT NULL AUTO_INCREMENT,
 	`record_month` char(7) NOT NULL ,
 	`customer_id` int(11) NOT NULL,
 	PRIMARY KEY(`id`),
	UNIQUE KEY `record_month` (`record_month`, `customer_id`) 
 );

CREATE TABLE tb_month_report_chapter_text(
	`id` INTEGER(11) AUTO_INCREMENT NOT NULL PRIMARY KEY,
	`main_id` INTEGER(11),
	`chapter` VARCHAR(10) NOT NULL,
	`text_type` VARCHAR(10) NOT NULL,
	`text_content` VARCHAR(255) DEFAULT NULL,
	FOREIGN KEY(`main_id`) REFERENCES tb_month_report_chapter_main(id) ON DELETE CASCADE ON UPDATE CASCADE
);

CREATE TABLE tb_month_report_chapter_img(
	`id` INTEGER(11) AUTO_INCREMENT NOT NULL PRIMARY KEY,
	`main_id` INTEGER(11),
	`chapter` VARCHAR(10) NOT NULL,
	`img_type` VARCHAR(10) NOT NULL,
	`img` LONGBLOB DEFAULT NULL,
	FOREIGN KEY(`main_id`) REFERENCES tb_month_report_chapter_main(id) ON DELETE CASCADE ON UPDATE CASCADE
);

这个表的关系,通过 主表的唯一标识, 月份和用户Id确定唯一,而文字和图片保存在另外两个表。

转载于:https://my.oschina.net/u/3136970/blog/850029

你可能感兴趣的:(MYSQl 联合唯一约束 根据两个字段 唯一)