第三十一章 SQL命令 DROP DATABASE

文章目录

第三十一章 SQL命令 DROP DATABASE

删除数据库(命名空间)。

大纲

DROP DATABASE dbname [RETAIN_FILES]

参数

  • dbname - 要删除的数据库(命名空间)的名称。
  • RETAIN_FILES - 可选-如果指定,则不会删除物理数据库文件(IRIS.DAT文件)。默认情况下,删除.dat文件以及命名空间和其他数据库实体。

描述

DROP DATABASE命令删除命名空间及其关联的数据库。

指定的dbname是包含相应数据库文件的命名空间和目录的名称。指定dbname作为标识符。命名空间名称不区分大小写。如果指定的DBNAME命名空间不存在, IRIS将发出SQLCODE-340错误。

DROP DATABASE命令是一个特权操作。
在使用DROP DATABASE之前,必须以%Admin_Manage资源的用户身份登录。
用户还必须拥有用于例程和全局数据库定义的资源的READ权限。
如果不这样做,将导致SQLCODE -99错误(权限冲突)。

使用$SYSTEM.Security.Login()方法为用户分配适当的权限:

   DO $SYSTEM.Security.Login("_SYSTEM","SYS")
   &sql(      )

必须具有%Service_Login:Use权限才能调用$SYSTEM.Security.Login方法。

不管权限如何,DROP DATABASE都不能用于删除系统命名空间。尝试这样做会导致SQLCODE-342错误。

DROP DATABASE不能用于删除当前正在使用或连接到的命名空间。尝试这样做会导致SQLCODE-344错误。

还可以使用管理门户删除命名空间。依次选择System Administration、Configuration、System Configuration、Namespaces以列出现有的Namespace。单击要删除的命名空间的删除按钮。

RETAIN_FILES

如果指定此选项,则保留物理文件结构;删除数据库及其关联的命名空间。执行此操作后,后续尝试使用DBNAME将导致以下结果:

  • DROP DATABASE不带RETAIN_FILES无法删除此物理文件结构。相反,它会导致SQLCODE-340错误(未找到数据库)。
  • DROP DATABASE WITH RETAIN_FILES还会导致SQLCODE-340错误(找不到数据库)。
  • CREATE DATABASE无法创建同名的新数据库。相反,它会导致SQLCODE-341错误(无法为数据库创建数据库文件)。
  • 尝试使用此命名空间会导致<NAMESPACE>错误。

服务器初始化和断开代码

服务器初始化代码和服务器断开代码可以通过$SYSTEM.SQL.Util.SetOption("ServerInitCode",value)$SYSTEM.SQL.Util.SetOption("ServerDisconnectCode",value)方法分配给命名空间。
可以使用相应的$SYSTEM.SQL.Util.GetOption()方法选项来确定当前值。

使用DROP DATABASE或其他接口删除命名空间,将删除这些Server Init CodeServer Disconnect Code值。
因此,删除并重新创建名称空间需要重新指定这些值。

示例

CREATE DATABASE DocTestDB ON DIRECTORY 'c:\InterSystems\IRIS142\mgr\DocTestDB'
DROP DATABASE DocTestDB RETAIN_FILES
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yaoxin521123

谢谢您的支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值