piątek, 7 lutego 2014

Kopiowanie zawartości jednej tabeli do drugiej

Załóżmy, że mamy dwie identyczne tabele, Table1, Table2. Table1 trzyma aktualne dane, Table2 dane historyczne. Ich struktura jest identyczna. Czasami zdarza się, że musimy przekopiować pewną ilość danych z jednej tabeli do drugiej. 
Można to zrobić następujących skryptem:

INSERT INTO Table1
SELECT * FROM Table2
WHERE some_condition

Bardzo prosty skrypcik. A piszę o nim ponieważ miałem z nim chwilę problem gdy napisałem go w takiej postaci (Z NAWIASAMI):
INSERT INTO Table1
(SELECT * FROM Table2
WHERE some_condition)

wtedy zapytanie wywala błąd. Prawdopodobnie dlatego, że oczekuje w nawiasach dokładnych parametrów a nie podzapytania.
Na szczęście szybko udało się rozwiązać problem. 

Wybieranie nazw kolumn w tabeli

Czasami zdarza się, że nasza tabela zawiera sporą ilość kolumn a my musimy wylistować wszystkie kolumny. Wiadomo, programista to leń i zawsze chce sobie ułatwić pracę. Dlatego poniższy skrypt już nie raz był przeze mnie używany. Wybiera on wszystkie kolumny z danej tabeli:

SELECT COLUMN_NAME, *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'YOUR_TABLE_NAME'