1. 说明一下关于“数据库唯一名称”
创新互联建站是一家专业提供金塔企业网站建设,专注与成都网站建设、成都网站制作、H5场景定制、小程序制作等业务。10年已为金塔众多企业、政府机构等服务。创新互联专业网站制作公司优惠进行中。
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%
create
unique
index
index_name
on
--创建唯一索引
索引名
在
table_name
(
column_name[,column_name...]
)
--表(列1[列2。。。(可选)])
[tablesapce
tab_space];
--
索引存放的表空间(可选)
大写的是关键字,小写的是需要修改地方。
--思路做个存储过程就行,取名UpdateStatus,执行这个存储过程,传参就是这个人名,
--第一步,给所有status=1的人update成status=2,
--第二步,给name=参数的人,update status =1
--然后你只需要exec UpdateStatus这个存储过程,代码如下
create procedure UpdateStatus(@name varchar(20))
as
Begin
update tablename set status =2 where status =1
update tablename set status =1 where name =@name
Exception
When others then
Rollback;
End;
可以是让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应该也能查到唯一索引。