想要创建一个临时表,该表具有auto_increment字段以及必须从另一个表中选择的字段。
这是我的(不起作用)
CREATE TEMPORARY TABLE tmp (id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,
(SELECT valueName AS valueName
FROM sometable
WHERE sometable.somevalue='00'));
这些工作由他们自己完成,但可以得到正确的语法来做到这两点
CREATE TEMPORARY TABLE tmp (id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY)
CREATE TEMPORARY TABLE tmp AS SELECT valueName AS valueName FROM sometable
WHERE sometable.somevalue='00';
答案 0 :(得分:18)
我想你可能会尝试做这里概述的第一个案例:
http://dev.mysql.com/doc/refman/5.5/en/create-table-select.html
..对于你的例子看起来像:
CREATE TEMPORARY TABLE tmp (id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY)
SELECT valueName AS valueName FROM sometable
WHERE sometable.somevalue='00';
..所以它可能只是在你第一次尝试时咬错了位置的错误。
答案 1 :(得分:12)
CREATE TEMPORARY TABLE tmp (
id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,
valueName varchar(16) // whatever type it should be
);
INSERT INTO tmp (valueName) SELECT valueName FROM sometable WHERE ...
此处的相关文档:http://dev.mysql.com/doc/refman/5.0/en/ansi-diff-select-into-table.html