chọn vào trong mysql


86

Tôi là người dùng MSSQL và bây giờ tôi đang chuyển đổi cơ sở dữ liệu của mình sang MySQL. Tôi đang viết truy vấn sau trong MySQL:

select * into new_tbl from tbl

Và tôi gặp lỗi sau

Error : Undeclared variable new_tbl

Làm thế nào một truy vấn như vậy nên được viết đúng trong MySQL?

Câu trả lời:


128

Sử dụng cú pháp 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 lệnh tạo bảng mới và có thể được sao chép dữ liệu từ một cơ sở dữ liệu khác như
Shankar Regmi

3
Cú pháp đúng là: CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
csname1910

CREATE ... SELECT hoạt động, đây phải là câu trả lời được chấp nhận. Từ khóa "AS" rõ ràng là tùy chọn và SELECT INTO không hoạt động với MySQL.
leo

Nhấn mạnh rằng nó không tạo chỉ mục!
Ivan Ivković

89

Trong MySQL, Nó sẽ như thế này

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

Tài liệu MySQL


8
Sự khác biệt tinh tế. Trong trường hợp này, bảng phải tồn tại. Đối với select into, nó không. Trong thực tế, tôi nghĩ rằng đó là một lỗi nếu nó xảy ra. Vì vậy, giải pháp này nên được mở đầu bằng các câu lệnh sao chép lược đồ bảng.
paxdiablo

Như paxdiablo nói, điều này yêu cầu bảng bạn đang chèn vào phải tồn tại. Cú pháp MSSQL mà OP được sử dụng để tạo bảng cho bạn.
Dave K

7
Có thể đã không trả lời câu hỏi của OP nhưng may mắn thay đây chính xác là những gì tôi đang tìm kiếm.
garyh
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.