今天注意到,公司系统的数据库中,有一张表a建了好几个索引,都是普通的index,看其他的表,都是unique index,或者有好几个索引其中有一个索引时unique index我想问一下,当初为什么要这样设计?表a是一张特别大的表,经常用于查询。跟这个有关吗?还有一张表是不是只有一个unique index???
解决方案 »
- 做一个oracle触发器,不会做,哪个大人给写一个,我学习下,感激不尽 = =!
- 求一个oracle版本的存储过程 sql版本的有 关于备份的
- 三张表连接查询问题,大家帮我看看,急!
- 请问大家,要把从ORACLE查询出来的文本数据导入到ACCESS中,用什么办法效率最高呢。
- Column event format a30?
- 帮助:如何查询Oracle数据库其中某张表的主关键字,得到此关键字的信息(字段名,字段类型等信息)
- 关于rman问题
- >>> 高手帮我看几个问题,谢谢!!! <<<
- exp问题
- 有谁知道Rapid Sql7的注册码? 谢谢(100分)
- group by 的问题,急急急
- 关于dbms_pipe权限的一个不解问题
而PK就不能为空了.
不过这在一定程度上也反应出你们的系统设计方面可能存在一些问题.
2. 一张表可以有多个Unique index,但必须保证建Unique index的字段,必须保证该字段的值是唯一的。
3. 主键简单地说,就是不能为空的Unique index
CREATE TABLE `NewTable` (
`id` int(8) NOT NULL AUTO_INCREMENT ,
`school_id` int(8) NOT NULL ,
`school_name1` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
`school_name2` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
`delete_date` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
`delete_author` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
`delete_flag` int(8) NULL DEFAULT NULL ,
PRIMARY KEY (`id`),
UNIQUE INDEX `school_id` USING BTREE (`school_id`),
UNIQUE INDEX `school_name1` USING BTREE (`school_name1`),
UNIQUE INDEX `school_name2` USING BTREE (`school_name2`)
)
ENGINE=InnoDB
DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci
AUTO_INCREMENT=11
ROW_FORMAT=COMPACT
;
`id` int(8) NOT NULL AUTO_INCREMENT ,
`class_id` int(8) NOT NULL ,
`class_name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
`class_schoolid` int(8) NOT NULL ,
`class_specialityid` int(8) NOT NULL ,
`delete_date` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
`delete_author` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
`delete_flag` int(8) NULL DEFAULT NULL ,
PRIMARY KEY (`id`),
FOREIGN KEY (`class_schoolid`) REFERENCES `school` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT,
FOREIGN KEY (`class_specialityid`) REFERENCES `speciality` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT,
UNIQUE INDEX `class_id` USING BTREE (`class_id`),
UNIQUE INDEX `class_name` USING BTREE (`class_name`),
INDEX `FK_cclass` USING BTREE (`class_schoolid`),
INDEX `FK_cclass_special` USING BTREE (`class_specialityid`)
)
ENGINE=InnoDB
DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci
COMMENT='InnoDB free: 9216 kB; (`class_schoolid`) REFER `g1/school`(`id`); (`class_specia'
AUTO_INCREMENT=2
ROW_FORMAT=COMPACT
;