我正在程序中创建一个临时表
DROP PROCEDURE IF EXISTS proc1
GO
CREATE PROCEDURE proc1()
BEGIN
DROP TEMPORARY TABLE IF EXISTS temp_tbl1;
CREATE TEMPORARY TABLE temp_tbl1
(id int, name_c varchar(300));
INSERT INTO temp_tbl1
SELECT id, name_c FROM user_tbl;
END;
该过程已成功编译。当我作为调用proc1()运行该过程时,它将错误消息作为未知数据库' test';
我可以在mysql的程序中使用临时表吗?我正在使用mysql 5.1服务器。
答案 0 :(得分:0)
如果您无法创建任何表格,那么您在data
目录中遇到服务器配置问题或权限问题(请参阅datadir
变量)。
如果问题仅限于TEMPORARY表,那么MySQL错误报告中会出现bug - 错误消息应该是"Unable to write to %tmpdir"
而不是"Unknown database"
。检查MySQL变量tmpdir
包含的内容并创建该目录。例如。如果是/usr/tmp
,请执行:
mkdir /usr/tmp
chmod 1777 /usr/tmp