第十五章 SQL命令 CREATE TABLE(二)
全局临时表
指定GLOBAL TEMPORARY关键字将表定义为全局临时表。表定义是全局的(对所有进程都可用);表数据是临时的(在进程期间持续存在)。相应的类定义包含一个附加的类参数SQLTABLETYPE=“GLOBAL TEMPORARY”。与标准的 IRIS表一样,ClassType=Persistent,并且类包含关键字,表示它不能有子类。
无论哪个进程创建临时表,临时表的所有者都会自动设置为。这意味着所有用户都可以访问缓存的临时表定义。例如,如果存储过程创建了一个临时表,则允许调用该存储过程的任何用户都可以访问该表定义。这仅适用于临时表定义;临时表数据特定于调用,因此只能由当前用户进程访问。
全局临时表的表定义与基表相同。全局临时表必须具有唯一的名称;尝试为其提供与现有基表相同的名称会导致错误。该表将一直存在,直到显式删除(使用DROP TABLE)。可以使用ALTER TABLE更改表定义。
下面的嵌入式示例创建一个全局临时表:
ClassMethod CreateTable3()
{
d $SYSTEM.Security.Login("_SYSTEM","SYS")
n SQLCODE,%msg
&sql(
CREATE GLOBAL TEMPORARY TABLE TempEmp
(
EMPNUM INT NOT NULL,
NAMELAST CHAR(30) NOT NULL,
NAMEFIRST CHAR(30) NOT NULL,
CONSTRAINT EMPLOYEEPK PRIMARY KEY (EMPNUM)
)
)
if SQLCODE=0 {
w !,"表创建"
} else {
w !,"SQLCODE=",SQLCODE,": ",%msg
}
}

.png)
