2011-02-23 12 views
7

मेमोरी में एक टेबल कैसे बनाएं जो "नियमित" तालिका के समान है? मैं इंडेक्स और बाधाओं के बिना एक प्रतिलिपि चाहता हूँ। शुद्ध एसक्यूएल (कोई बाहरी उपकरण)।MySQL तालिका संरचना को स्मृति में तालिका में कैसे कॉपी करें?

यह काम करता है (हालांकि अनुक्रमित बनाई गई हैं):

create table t_copy (like t_original) 

यह नहीं करता है:

create table t_copy (like t_original) engine=memory 
+0

मैं नीचे नीचे इस जवाब दे दिया। आपके द्वारा दिया गया 'यह नहीं' हिस्सा लगभग करीब था। क्वेरी के पीछे बस (जैसे t_original) डालें। – RolandoMySQLDBA

उत्तर

6

यह आप किसी भी अनुक्रमित बिना एक खाली तालिका मिलना चाहिए।

create table t_copy 
    select * 
     from t_original 
     where 0 
9
CREATE TABLE t_copy ENGINE=MEMORY SELECT * FROM t_original; 

मैं वास्तव में यह करने की कोशिश की, यह काम करता है !!!

mysql> show create table queue\G 
*************************** 1. row *************************** 
     Table: queue 
Create Table: CREATE TABLE `queue` (
    `ndx` int(11) NOT NULL AUTO_INCREMENT, 
    `folderid` int(11) NOT NULL, 
    PRIMARY KEY (`ndx`) 
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=latin1 
1 row in set (0.02 sec) 

mysql> create table queue_memory engine=MEMORY as select * from queue; 
Query OK, 0 rows affected (0.05 sec)<BR> 
Records: 0 Duplicates: 0 Warnings: 0<BR> 

[email protected] (DB test) :: show create table queue_memory\G 
*************************** 1. row *************************** 
     Table: queue_memory 
Create Table: CREATE TABLE `queue_memory` (
    `ndx` int(11) NOT NULL DEFAULT '0', 
    `folderid` int(11) NOT NULL 
) ENGINE=MEMORY DEFAULT CHARSET=latin1 
1 row in set (0.00 sec) 

इसे आज़माएं !!!

4

, जिसकी संरचना और पहले तालिका के रूप में सूचकांक एक में स्मृति तालिका बनाने के लिए, कोशिश:

create table t_copy like t_original; 
alter table t_copy engine=mem; 
संबंधित मुद्दे