重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
表1,name 唯一 可以设置为主键 name varchar2(50) primary key 表2,id是表一ID的外键 id references 表一名(id) 就可以了
创新互联公司专业IDC数据服务器托管提供商,专业提供成都服务器托管,服务器租用,雅安服务器托管,雅安服务器托管,成都多线服务器托管等服务器托管服务。
1. 说明一下关于“数据库唯一名称”
1.1) Global_name:对一个数据库(Oracle database)的唯一标识,oracle建议用此种方法命令数据库。该值是在创建数据库是决定的,缺省值为Db_name. Db_domain。在以后对参数文件中Db_name与Db_domain参数的任何修改不影响Global_name的值,如果要修改Global_name,只能用ALTER DATABASE RENAME GLOBAL_NAME TO ‘db_name.db_domain’。查看方式:show parameter global_name;
1.2) 配置监听中的GLOBAL_DBNAME:
三种监听配置的方式:Database、PLSExtProc 和Executable
Database 模式是标准的配置方式,也是最常用的数据库连接方式。
PLSExtProc 模式允许PL/SQL程序访问外部程序,并且被大多数实例配置为默认连接方式
Executable 模式允许外部程序能通过一个tns连接被访问(目前没用到过)
Database 模式配置方式:
(SID_DESC =
(GLOBAL_DBNAME= querymqq)
(ORACLE_HOME= /data/oracle/product/10.2.0/db_1/)
(SID_NAME = mqq)
)
2. 环境变量是指得,命令提示行中设置的?假设是这个意思,需要做以下操作:
打开命令提示行,即C:\提示符下
2.1) C:\ set ORCLE_UNQNAME=xxx
注:xxx是你要命名的新数据库唯一名称
2.2) C:\ notepad stmt.sql
注:编辑脚本stmt.sql,提示如文件不存在是否创建,选“是”
stmt.sql脚本中输入以下内容:
alter database rename GLOBAL_NAME TO '1';
--保存退出,需要说明的是,global_name不是可以随便改动的,参见第1点的说明,这里只是为了说明如何在sql脚本中调用环境变量
2.3) C:\ sqlplus "/as sysdba" @stmt.sql %ORCLE_UNQNAME%
建表后可以增加约束
ALTER TABLE table_name
ADD CONSTRAINT constraint_name
UNIQUE (column1, column2, ... , column_n);
建表语句中可以增加字段约束
create table table_name
(
column1 number not null,
column2 number not null,
column3 varchar2(50),
CONSTRAINT constraint_name UNIQUE (column2) --定义唯一性约束
);
可以是让oracle 忽略就存在表内的重复值,并且新插入的数据遵守唯一约束.
操作步骤
1.检查当前oracle 唯一约束创建的索引的unique的列的值. 必须是not unique.
2.如果是unique这要删除该约束重新建,新建的约束先disable,并且要deferred
3.这时候检查oracle 唯一约束创建的索引的unique的列的值你会发现该索引时not unique
4.接下来你就可以enable 该约束了
明天天帖出示例,现在没时间
有两种方法:
(1)视图dba_constraints
(2)视图dba_indexes
设置一个字段,为主键,这个主键就是不重复的,主键的内容可以使用oracle的sequence。
方法一、
视图dba_constraints,这张表中有所有的表的约束,拥有唯一约束的字段就拥有唯一索引,其中Constraint_type的值应该是U,不过值是R的表示主键,这个也存在唯一索引,不知道你要不要找这种,所以个人认为在这张表内能找到。
方法二:
视图dba_indexes,这里的index_type应该也能查到唯一索引。