我正在将我的应用程序从一个MySQL服务器扩展到一个3节点的MySQL Galera Gluster。显然临时表不会被复制。
此问题是否有共同的解决方法?
我目前的代码如下:
$stmt = "
CREATE TEMPORARY TABLE tmp (`city_id` MEDIUMINT( 8 ) UNSIGNED NOT NULL ,INDEX ( `city_id` ) )
";
db_query($stmt);
# travel tips
$stmt = "
INSERT INTO tmp
SELECT city_id
FROM $DB.$T33 g
WHERE g.country_code = '$country[code]'
GROUP BY city_id
";
execute_stmt($stmt, $link);
错误消息是:
错误:1146表'test.tmp'不存在
答案 0 :(得分:4)
CREATE TEMPORARY TABLE
创建一个只对创建它的会话可见的表。没有其他连接可以看到它。考虑到这两个因素,这个表是否被复制并不重要。
ROW
的复制是Galera的要求。MyISAM
表格未被复制。如果TEMPORARY TABLE
为ENGINE=MyISAM
(或MEMORY
),则使用这两个额外的项目符号无关紧要。
回到你的问题。 db_query
和execute_stmt
做了什么?