Existe-t-il un moyen simple de copier une table dans la même base de données avec un nom différent? J'ai essayé certains de ces énumérés ci-dessous,
db2 "CREATE TABLE SCHEMA.NEW_TB COPY AS SELECT * FROM SCHEMA.OLD_TB WHERE 1 = 2"
db2 "SELECT INTO SCHEMA.NEW_TB FROM SCHEMA.OLD_TB"
db2 "SELECT * FROM SCHEMA.OLD_TB INSERT INTO SCHEMA.NEW_TB"
Aucun de ceux-ci n'a fonctionné, j'utilise db2 v9.5
Vous devez entourer la partie sélectionnée de parenthèses.
CREATE TABLE SCHEMA.NEW_TB AS (
SELECT *
FROM SCHEMA.OLD_TB
) WITH NO DATA
Devrait marcher. Faites attention à tout ce que @ Gilbert a dit ne serait pas copié.
Je suppose que DB2 sous Linux/Unix/Windows ici, puisque vous dites DB2 v9.5.
Essaye ça:
CREATE TABLE SCHEMA.NEW_TB LIKE SCHEMA.OLD_TB;
INSERT INTO SCHEMA.NEW_TB (SELECT * FROM SCHEMA.OLD_TB);
Les options non copiées incluent:
Deux étapes fonctionnent bien:
crée la table bu_x as (sélectionnez a, b, c, d parmi x) WITH no data;
insérer dans bu_x (a, b, c, d) sélectionner sélectionner a, b, c, d parmi x;
Nous pouvons copier toutes les colonnes d'une table à une autre, une table existante:
INSERT INTO table2 SELECT * FROM table1;
Ou nous pouvons copier uniquement les colonnes que nous voulons dans une autre table existante:
INSERT INTO table2 (nom_colonne (s)) SELECT nom_colonne (s) FROM table1;
ou SELECT * INTO BACKUP_TABLE1 FROM TABLE1