如何在內存中創建與「常規」表相同的表?我想要一個沒有索引和約束的副本。純SQL(無需外部工具)。如何將MySQL表結構複製到內存中的表中?
這工作(但是在創建索引):
create table t_copy (like t_original)
這不:
create table t_copy (like t_original) engine=memory
如何在內存中創建與「常規」表相同的表?我想要一個沒有索引和約束的副本。純SQL(無需外部工具)。如何將MySQL表結構複製到內存中的表中?
這工作(但是在創建索引):
create table t_copy (like t_original)
這不:
create table t_copy (like t_original) engine=memory
這應該給你一個空表沒有任何索引。
create table t_copy
select *
from t_original
where 0
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)
試試看!
要創建一個在內存中的表具有相同的結構和索引作爲第一個表,嘗試:
create table t_copy like t_original;
alter table t_copy engine=mem;
我下面回答下來。 '這不'你給的部分差不多。只要把(如t_original)放在查詢的後面。 – RolandoMySQLDBA 2011-02-24 02:48:45