我想在mysql程序中创建表,如
DROP TABLE IF EXISTS a;
CREATE TABLE a AS SELECT * FROM (CALL(abcdef(abc)));
任何想法我怎么能这样做,或者在mysql中是不可能的?
答案 0 :(得分:1)
您无法在问题中使用该语法,因为存储过程不返回任何内容(即使它可以更改其某些参数的值,如果配置为OUT
或{{1} })。
我建议如下:
修改过程以将行存储在临时表中:
INOUT
在程序调用之后,直接使用表CREATE TEMPORARY TABLE temp_table(...);
INSERT INTO temp_table VALUES(...); // do that for all the data
(temp_table
),或执行以下查询:
SELECT ... FROM temp_table
当您不再需要它时,您可以删除临时表。否则,当MySQL连接关闭时,它将自动被删除。