Informix 如何在“开始工作”中使用临时表
我正在尝试在BEGIN WORK/COMMIT块中创建一个包含一组指令的脚本,但由于某些原因,临时表没有被创建或在某个点被删除: 这就是我正在编写的脚本:Informix 如何在“开始工作”中使用临时表,informix,Informix,我正在尝试在BEGIN WORK/COMMIT块中创建一个包含一组指令的脚本,但由于某些原因,临时表没有被创建或在某个点被删除: 这就是我正在编写的脚本: -- PHASE2: BEGIN WORK; --create a temp table CREATE temp table IF NOT EXISTS temp_users ( reg_id char(2), cntry char(2), name varchar(25) ); --insert to temp t
-- PHASE2:
BEGIN WORK;
--create a temp table
CREATE temp table IF NOT EXISTS temp_users (
reg_id char(2),
cntry char(2),
name varchar(25)
);
--insert to temp table
INSERT INTO temp_users(reg_id,cntry,name)
SELECT region,country,usr_name FROM user_data WHERE cntry = 'AU';
-- more work with the temp table below..
COMMIT;
但是当我执行这个脚本时,我得到了一个错误,因为临时用户不存在。我不确定您遇到了什么问题。在Ubuntu18.04上使用Informix 12.10.FC6(升级时间到了,然后是一些),我可以毫无错误地运行它:
DROP TABLE IF EXISTS user_data;
CREATE TABLE user_data
(
region CHAR(2) NOT NULL,
country CHAR(2) NOT NULL,
cntry CHAR(2) NOT NULL,
usr_name VARCHAR(25) NOT NULL
);
-- PHASE2:
BEGIN WORK;
--create a temp table
CREATE TEMP TABLE IF NOT EXISTS temp_users (
reg_id CHAR(2),
cntry CHAR(2),
name VARCHAR(25)
);
--insert to temp table
INSERT INTO temp_users(reg_id, cntry, name)
SELECT region, country, usr_name FROM user_data WHERE cntry = 'AU';
-- more work with the temp table below..
COMMIT;
我不知道为什么您的user\u data
表中有country
和cntry
列;这并不明显
尝试创建一个临时数据库(一个具有新名称的数据库,您很快就会摆脱它),然后使用DB Access对其运行所显示的脚本。它应该可以工作,创建如下跟踪(我使用存储
作为数据库,使用文件xyz.sql
来包含脚本):
你得到了什么?我不确定你遇到了什么问题。在Ubuntu18.04上使用Informix 12.10.FC6(升级时间到了,然后是一些),我可以毫无错误地运行它:
DROP TABLE IF EXISTS user_data;
CREATE TABLE user_data
(
region CHAR(2) NOT NULL,
country CHAR(2) NOT NULL,
cntry CHAR(2) NOT NULL,
usr_name VARCHAR(25) NOT NULL
);
-- PHASE2:
BEGIN WORK;
--create a temp table
CREATE TEMP TABLE IF NOT EXISTS temp_users (
reg_id CHAR(2),
cntry CHAR(2),
name VARCHAR(25)
);
--insert to temp table
INSERT INTO temp_users(reg_id, cntry, name)
SELECT region, country, usr_name FROM user_data WHERE cntry = 'AU';
-- more work with the temp table below..
COMMIT;
我不知道为什么您的user\u data
表中有country
和cntry
列;这并不明显
尝试创建一个临时数据库(一个具有新名称的数据库,您很快就会摆脱它),然后使用DB Access对其运行所显示的脚本。它应该可以工作,创建如下跟踪(我使用存储
作为数据库,使用文件xyz.sql
来包含脚本):
你得到了什么?我的问题是,即使我有create temp table语句,当我尝试向temp表格(temp_用户)插入数据时,我得到一个错误,如果你复制我显示的代码(到一次性数据库中-你可能不想删除真正的
用户数据
表格),temp_用户表格就不存在了,您仍然收到错误吗?是的,即使插入原始值(没有选择),我也会收到相同的错误SQL error[42000]:指定的表(临时用户)不在数据库中。我的问题是,即使我有create temp table语句,当我尝试将数据插入临时表(临时用户)时我得到一个错误,它说临时用户表不存在如果你复制我显示的代码(到一次性数据库-你可能不想删除真实的user\u数据
table),你仍然会得到错误吗?是的,即使插入原始值(没有选择),我也会得到相同的错误SQL错误[42000]:指定的表(临时用户)不在数据库中。您使用的Informix版本是什么?您使用的Informix版本是什么?