mysql 删除索引 简书,八、SQL语法差异及解决方案④(删除索引及取数据库信息)

删除索引

索引的定义在各个数据库系统中基本相同,但是删除索引的语法则各有不同。

如:删除T_Person表中定义的名称为idx1的索引在不同数据库系统下的SQL语句如下:

MYSQL:

DROP INDEX idx1 ON T_Person

MSSQLServer:

DROP INDEX T_Person.idx1

Oracle,DB2:

DROP INDEX idx1

取数据库信息

MYSQL中可以通过函数来取得数据库的信息,包括当前数据库名、版本、当前登录用户等信息:

DATABASE()函数返回当前数据库名

VERSION()函数以一个字符串形式返回MySQL 服务器的版本

USER()函数(还有SYSTEM_USER、SESSION_USER两个别名)返回当前MySQL 用户名。

MSSQLServer中也可以通过函数来取得数据库的信息:

APP_NAME()函数返回当前会话的应用程序名称;

CURRENT_USER函数(注意这个函数不能带括号调用)返回当前登陆用户名;

HOST_NAME()函数返回工作站名。

但在MSSQLServer中如果要查询当前数据库名,则必须到系统表 sysprocesses中查询,SQL语句如下:

select dbname = case when

dbid = 0 then null when dbid <> 0 then db_name(dbid) end

from master..sysprocesses where spid=@@SPID

系统表“master..sysprocesses”中存储了当前数据库系统中的进程信息,而“@@SPID”则表示当前进程号。

Oracle中使用USER函数用来取得当前登录用户名,注意使用这个函数的时候不能使用括号形式的空参数列表,也就是USER()这种使用方式是不对的。正确使用方式如下:

SELECT USER FROM DUAL

Oracle中使用USERENV()函数用来取得当前登录用户相关的环境信息,USERENV()函数有一个参数,参数的可选值如下:ISDBA、LANGUAGE、TERMINAL、SESSIONID、ENTRYID、LANG和INSTANCE。

DB2中可以通过CURRENT_USER来取得当前登陆用户名,而CURRENT_SERVER用来取得当前服务名,比如:

SELECT CURRENT_USER,CURRENT_SERVER FROM sysibm.sysdummy1

DB2中取得当前数据库的版本的SQL语句如下:

SELECT * FROM sysibm.sysversions

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值