poniedziałek, 3 września 2018

SQL – klonowanie tabel


SQL – klonowanie tabel

Może zaistnieć sytuacja, gdy potrzebna jest dokładna kopia tabeli i CREATE TABLE ... lub polecenia SELECT ... nie odpowiadają twoim celom, ponieważ kopia musi zawierać te same indeksy, wartości domyślne i tak dalej.
Jeśli korzystasz z MySQL RDBMS, możesz poradzić sobie z tą sytuacją, przestrzegając poniższych kroków:
·      Użyj polecenia SHOW CREATE TABLE, aby uzyskać instrukcję CREATE TABLE, która określa strukturę tabeli źródłowej, indeksy i wszystko.
·      Zmodyfikuj instrukcję, aby zmienić nazwę tabeli na tabelę klonowania i wykonaj instrukcję. W ten sposób będziesz miał dokładną tabelę klonów.
·      Opcjonalnie, jeśli potrzebujesz również skopiować zawartość tabeli, wydaj również instrukcję INSERT INTO lub SELECT.
Przykład
Wypróbuj poniższy przykład, aby utworzyć sklonowaną tabelę dla KLIENCI, której struktura wygląda następująco:
Krok 1 - Uzyskaj pełną strukturę tabeli.
mysql> show create table klienci;
+---------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table   | Create Table                                                                                                                                                                                                                                      |
+---------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| klienci | CREATE TABLE `klienci` (
  `id` int(11) NOT NULL,
  `nazwisko` varchar(20) NOT NULL,
  `wiek` int(11) NOT NULL,
  `adres` char(25) DEFAULT NULL,
  `pensja` decimal(18,2) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
+---------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
Krok 2 - Zmień nazwę tej tabeli i utwórz kolejną tabelę.
mysql> CREATE TABLE `klon_klienci` (
    ->   `id` int(11) NOT NULL,
    ->   `nazwisko` varchar(20) NOT NULL,
    ->   `wiek` int(11) NOT NULL,
    ->   `adres` char(25) DEFAULT NULL,
    ->   `pensja` decimal(18,2) DEFAULT NULL,
    ->   PRIMARY KEY (`id`)
    -> ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Query OK, 0 rows affected (0.33 sec)
Krok 3 - Po wykonaniu kroku 2, sklonujesz tabelę w bazie danych. Jeśli chcesz skopiować dane ze starej tabeli, możesz to zrobić za pomocą instrukcji INSERT INTO ... SELECT.
mysql> insert into klon_klienci
    -> select *
    -> from klienci;
Query OK, 7 rows affected (0.07 sec)
Records: 7  Duplicates: 0  Warnings: 0
Na koniec będziesz miał dokładnie sklonowaną tabelę, tak jak chciałeś.


Brak komentarzy:

Prześlij komentarz