mysql'de seçin


88

Ben bir MSSQL kullanıcısıyım ve şimdi veritabanımı MySQL'e dönüştürüyorum. MySQL'de aşağıdaki sorguyu yazıyorum:

select * into new_tbl from tbl

Ve şu hatayı alıyorum

Error : Undeclared variable new_tbl

MySQL'de böyle bir sorgu nasıl düzgün bir şekilde yazılmalıdır?

Yanıtlar:


130

CREATE TABLE SELECT sözdizimini kullanın.

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

CREATE TABLE new_tbl SELECT * FROM orig_tbl;

SELECT INTO komutu yeni bir tablo oluşturur ve bir veri tabanından diğerine veri kopyalanabilir
Shankar Regmi

3
Doğru sözdizimi: CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
csname1910

CREATE ... SELECT çalışır, bu kabul edilen cevap olmalıdır. "AS" anahtar sözcüğü görünüşte isteğe bağlıdır ve SELECT INTO MySQL ile çalışmaz.
leo

Dizinler oluşturmadığına vurgu yapın!
Ivan Ivković

89

MySQL'de böyle olmalı

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 Belgeleri


8
İnce fark. Bu durumda tablonun var olması gerekir. Çünkü select intoöyle değil. Aslında, eğer öyleyse bir hata olduğunu düşünüyorum. Bu nedenle, bu çözümün önüne tablo şemasını kopyalayan ifadeler eklenmelidir.
paxdiablo

Paxdiablo'nun dediği gibi, bu, eklediğiniz tablonun zaten var olmasını gerektirir. OP'nin sizin için tabloyu oluşturmak için kullandığı MSSQL sözdizimi.
Dave K

7
OP'nin sorusuna cevap vermemiş olabilir ama neyse ki tam da aradığım buydu.
garyh
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.