主键索引一定是number列吗 一个表的的主键比如id,一定要Numnber类型吗我用varchar2不可以吗,如果可以的话我在这上面加索引是否效率是否有影响呢。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 首先,任何类型的列都可以被定义为主键。作为主键的选择:单纯从速度上讲,NUMBER是最好的,因为最快,其次是定长类型,再次是变长类型。如果考虑上数据量和用途的话,大致上可以如下选择:1)数据量大且经常作为查询对象被查询,那么可以选一个无实际意义的NUMBER类型作为单纯的主键,可以提供较好的查询速度,而且数据变更的时候也不会影响主键。2)如果并不经常作为查询对象而是在大表查询时与大表进行连结,在WHERE子句中起数据过滤的作用,则可以采用具有一定实际意义的数据类型做主键较好(如:VARCHAR2型的列) 不一定非得用number可以用varchar2 主键与类型没关系只是一般用number类型 问个oracle很白痴的问题 oracle数据库,从一个数据库中导出一张表,然后把这张表导入到另一张表中 关于TRIGGER 关于数据库分布式设计与应用讨论?和资料 imp 只导入部分数据,然后就抛出忽略剩余行的错误 如何在ORACLE中的查询设置超时时间? sql查询求助 Oracle9i的安装问题,急!!!!!! winxp 下能装 oracle817吗?我装的时候有问题? 谁能把pcscfg.cfg文件发给我看看? 关于数据移植 SqlServer2000 移部分表到 Oracle 10g 朋友们帮小弟个忙
作为主键的选择:
单纯从速度上讲,NUMBER是最好的,因为最快,其次是定长类型,再次是变长类型。
如果考虑上数据量和用途的话,大致上可以如下选择:
1)数据量大且经常作为查询对象被查询,那么可以选一个无实际意义的NUMBER类型作为单纯的主键,可以提供较好的查询速度,而且数据变更的时候也不会影响主键。
2)如果并不经常作为查询对象而是在大表查询时与大表进行连结,在WHERE子句中起数据过滤的作用,则可以采用具有一定实际意义的数据类型做主键较好(如:VARCHAR2型的列)
可以用varchar2
只是一般用number类型