เลือกใน mysql


88

ฉันเป็นผู้ใช้ MSSQL และตอนนี้ฉันกำลังแปลงฐานข้อมูลเป็น MySQL ฉันกำลังเขียนข้อความค้นหาต่อไปนี้ใน MySQL:

select * into new_tbl from tbl

และฉันได้รับข้อผิดพลาดต่อไปนี้

Error : Undeclared variable new_tbl

คำถามดังกล่าวควรเขียนใน MySQL อย่างถูกต้องอย่างไร

คำตอบ:


130

ใช้ไวยากรณ์ 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

3
ไวยากรณ์ที่ถูกต้องคือ: CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
csname1910

สร้าง ... SELECT ใช้ได้ผลนี่ควรเป็นคำตอบที่ยอมรับ เห็นได้ชัดว่าคำหลัก "AS" เป็นทางเลือกและ SELECT INTO ไม่ทำงานกับ MySQL
สิงห์

ย้ำว่าไม่สร้างดัชนี!
Ivan Ivković

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 กล่าวไว้สิ่งนี้ต้องการให้ตารางที่คุณแทรกเข้าไปมีอยู่แล้ว ไวยากรณ์ MSSQL ที่ OP ใช้สร้างตารางให้คุณ
Dave K

7
อาจไม่ได้ตอบคำถามของ OP แต่โชคดีที่นี่คือสิ่งที่ฉันกำลังมองหา
garyh
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.