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 ......
PostgreSQL to najbardziej zaawansowany system relacyjnych baz danych Open Source.
Nie jesteś zalogowany. Proszę się zalogować lub zarejestrować.
Strony 1
Zaloguj się lub zarejestruj by napisać odpowiedź
Od kilku godzin jestem szczesliwcem ktory zamienil mysql na postgres mam zapytanie jaki jest odpowiednik zapytania z mysqla
create table if not exsists ......
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)
Podziel sie ta funkcja
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 .
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.
Posty [ 4 ]
Strony 1
Zaloguj się lub zarejestruj by napisać odpowiedź
[ Wygenerowano w 0.007 sekund, wykonano 7 zapytań ]