7
votes

Comment copier la structure de table MySQL sur la table en mémoire?

Comment créer une table en mémoire identique à la table "régulière"? Je veux une copie sans index et contraintes. Pure SQL (pas d'outils externes).

Ceci fonctionne (toutefois les index sont créés): P>

create table t_copy (like t_original) engine=memory


1 commentaires

J'ai répondu à cela ci-dessous. Le «ça ne fait pas» que vous avez donné était presque proche. Juste mettre (comme t_original) à l'arrière de la requête.


3 Réponses :


6
votes

Cela devrait vous procurer une table vide sans aucun index.

create table t_copy
    select *
        from t_original
        where 0


0 commentaires

10
votes
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>

lwdba@localhost (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)

0 commentaires

5
votes

Pour créer une table en mémoire avec la même structure et les mêmes index comme la première table, essayez: xxx


0 commentaires