在mysql中选择


86

我是MSSQL用户,现在将数据库转换为MySQL。我在MySQL中编写以下查询:

select * into new_tbl from tbl

我得到以下错误

Error : Undeclared variable new_tbl

如何用MySQL正确编写这样的查询?

Answers:


128

使用CREATE TABLE SELECT语法。

http://dev.mysql.com/doc/refman/5.0/en/create-table-select.html

CREATE TABLE new_tbl SELECT * FROM orig_tbl;

SELECT INTO命令创建新表,并且可以将数据从一个数据库复制到另一个数据库,例如:
Shankar Regmi,2014年

3
正确的语法是:CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
csname1910 '16

创建...选择有效,这应该是可接受的答案。“ AS”关键字显然是可选的,而SELECT INTO不适用于MySQL。
狮子座

强调它不会创建索引!
伊万·伊夫科维奇

89

在MySQL中,应该像这样

INSERT INTO this_table_archive (col1, col2, ..., coln)
SELECT col1, col2, ..., coln
FROM this_table
WHERE entry_date < '2011-01-01 00:00:00';

MySQL文档


8
细微的差别。在这种情况下,表必须存在。对于select into,事实并非如此。实际上,我认为这是错误的。因此,此解决方案应以重复表架构的语句作为开头。
paxdiablo

正如paxdiablo所说,这要求您要插入的表已经存在。OP用于为您创建表的MSSQL语法。
Dave K

7
可能尚未回答OP的问题,但幸运的是,这正是我所要的。
garyh 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.