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.