1

Temat: Create table

Od kilku godzin jestem szczesliwcem ktory zamienil mysql na postgres mam zapytanie jaki jest odpowiednik zapytania z mysqla
create table if not exsists ......

2

Odp: Create table

Szczęśliwcze, nie ma czegoś takiego w postgresie. Można to uzyskać pisząc prosta funkcją ale polecenia samego sobie nie ma (albo ja nic o nim nie wiem)

3

Odp: Create table

Podziel sie ta funkcja

4

Odp: Create table

Takiego if'a zawsze mi brakowało w postgresie. Jako rozwiązanie mozesz napisać funkcje, która tworzy taką tabelę jeśli jeszcze jej nie ma. Ale duzo bardziej uniwersalnym rozwiązaniem jest stworzenie funkcji, która będzie wykonywać dynamicznie jakieś polecenie (podane jako argument)

create or replace function iff(varchar) returns void as
$$
begin
execute $1;
end;
$$
language plpgsql

i wywołać to na przykład tak

select iff('create table qaz(i int)') where not exists (select * from pg_tables where tablename='qaz');

Uprzedzając wszelkie marudzenie wiem, że uzycie if not exists w mysql jest prostsze smile.
W sumie nie spoglądałem na ostatnie wydania postgresa (może już coś takiego wymyślili). Zauważ że funkcja która podałem jest uniwersalna i może służyć nie tylko do tworzenia tabel.