Na świecie istnieje tak wiele różnych baz danych, a wiele z nich używa do programowania języka SQL. Bardzo łatwo jest założyć, że jeśli używają SQL, możemy bez problemu użyć kodu z jednej bazy danych do innej. Niestety rzeczywistość jest zupełnie inna, nie wszystkie skrypty z jednej bazy danych działają w innej. Dzisiaj zobaczymy bardzo ciekawe pytanie, w którym użytkownik zadał pytanie dotyczące wstawiania wielu wierszy w jednym zapytaniu SQL.
Pytanie: Napisz kod SQL, który wstawi wiele wierszy w jednym zapytaniu SQL. Warunkiem dla tego skryptu było to, że powinien działać w SQL Server, MySQL i PostgreSQL bez zmiany kodu w jednej linii.
Odpowiedź: Napisanie kodu, który wstawia wiele wierszy w jednym zapytaniu SQL, nie jest trudnym zadaniem, ale rzeczywiście wyzwaniem jest stworzenie skryptu, który będzie działał z wieloma bazami danych. Jednak możliwe jest stworzenie skryptu, który będzie działał w wielu bazach danych.
Najpierw utwórzmy przykładową tabelę z dwiema kolumnami. Po utworzeniu tabeli wstaw trzy różne wiersze w jednym zapytaniu SQL.
CREATE TABLE SampleTable (ID INT, Col1 VARCHAR(100)); INSERT INTO SampleTable (ID, Col1) VALUES (1, 'One'), (2, 'Two'), (3, 'Three'); SELECT * FROM SampleTable; DROP TABLE SampleTable;
Teraz uruchommy to zapytanie w wielu bazach danych i zobaczmy wynik.
Serwer SQL
MySQL
PostgreSQL
To wszystko. To było rzeczywiście bardzo interesujące pytanie. Abyś wiedział, alternatywnie możesz również zbudować skrypt SQL za pomocą UNION. Jednak rozwiązanie, które zademonstrowano w tym zapytaniu, jest nową drogą.