Discussion:
create table if not exists
(Wiadomość utworzona zbyt dawno temu. Odpowiedź niemożliwa.)
Piotruś
2004-05-07 09:05:44 UTC
Permalink
Witam,

W skrypcie PHP próbuje użyć następującegoi polecenia:

CREATE TABLE IF NOT EXISTS nazwa_tabeli (definicja tabeli);

Niestety wywala błąd.
Próbowałem też w pgadminie, ale wyłazi "parse error at or near NOT"
Co jest nie tak z tym zapytaniem?
Baza to postgresql, ale to chyba ma niewielkie znaczenie.
Pozdrawiam.
Piotrek.
..::WojT::..
2004-05-07 10:04:06 UTC
Permalink
Post by Piotruś
CREATE TABLE IF NOT EXISTS nazwa_tabeli (definicja tabeli);
IMO
create or replace table nazwa_tabeli (definicja)

..::WojT::..
Piotruś
2004-05-07 09:17:10 UTC
Permalink
Pewnego pięknego dnia Fri, 7 May 2004 11:04:06 +0100
Post by ..::WojT::..
Post by Piotruś
CREATE TABLE IF NOT EXISTS nazwa_tabeli (definicja tabeli);
IMO
create or replace table nazwa_tabeli (definicja)
Hmm, ale ja nie chcę robić replace jeżeli tabela istnieje, chcę ją tylko
stworzyć, jeżeli nie istnieje.
hubert depesz lubaczewski
2004-05-07 10:17:21 UTC
Permalink
Post by Piotruś
Baza to postgresql, ale to chyba ma niewielkie znaczenie.
ma zasadniczne znaczenie. postgresql nie obsługuje tego mysql-izmu.
i pisz w temacie o jaką bazę chodzi.

depesz
--
napisanie do mnie na priv daje 99.9% gwarancję braku odpowiedzi
*-----------------------------------------------------------------*
sklep z rzeczami do domu: http://ulek.pl/
Piotruś
2004-05-07 16:20:57 UTC
Permalink
Pewnego pięknego dnia Fri, 7 May 2004 12:17:21 +0200
Post by hubert depesz lubaczewski
Post by Piotruś
Baza to postgresql, ale to chyba ma niewielkie znaczenie.
ma zasadniczne znaczenie. postgresql nie obsługuje tego mysql-izmu.
i pisz w temacie o jaką bazę chodzi.
Z premedytacją nie napisałem w temacie jaka baza, ale nie do końca
wyjaśniłem w treści o co chodzi - mój błąd. Używam postgresa, ale dostęp
do bazy jest przez odbc dlatego, że skrypt ma być uniwersalny. Mój błąd,
że nie napisałem tego na początku. Swoją drogą zastanawiam się jak to
jest z tym odbc, czy jest szansa napisania uniwersalnego skryptu, biorąc
pod uwagę, że zapytania do bazy nie będą bardzo skomplikowane i nie będę
korzystał z rozwiązań typowych dla jakiejś tam bazy? Skąd mam wiedzieć,
czy daną konstrukcję zapytania obsłuży większość baz? Czy jedyną
możliwością jest testowanie na jak największej ich ilości?

Pozdrawiam.
Piotrek.
Marcin Gajda
2004-05-07 17:00:44 UTC
Permalink
Post by Piotruś
Z premedytacją nie napisałem w temacie jaka baza, ale nie do końca
wyjaśniłem w treści o co chodzi - mój błąd. Używam postgresa, ale dostęp
do bazy jest przez odbc dlatego, że skrypt ma być uniwersalny. Mój błąd,
że nie napisałem tego na początku. Swoją drogą zastanawiam się jak to
jest z tym odbc, czy jest szansa napisania uniwersalnego skryptu, biorąc
pod uwagę, że zapytania do bazy nie będą bardzo skomplikowane i nie będę
korzystał z rozwiązań typowych dla jakiejś tam bazy? Skąd mam wiedzieć,
czy daną konstrukcję zapytania obsłuży większość baz? Czy jedyną
możliwością jest testowanie na jak największej ich ilości?
Wystarczy czytać dokumentacje. W przypadku PostgreSQL tego nie zrobiłeś,
jak widać.

Z drugiej strony, jeśli chodzi o przenośność kodu, to oczywiście da się.
Musisz jednak wybrać między dobrą a lichą jakością bazy i taką samą
efektywnością tejże (pierwszy powód zabrania Tobie korzystać z procedur
składowanych i transakcji a drugi ze skomplikowanych indeksów,
podzapytań).

Pozdrawiam,
--
Marcin Gajda ________________________
Linux registered user #300108 _______
Dieu me pardonerra - c'est son metier
Marcin Goralski
2004-05-07 10:58:04 UTC
Permalink
Post by Piotruś
Witam,
CREATE TABLE IF NOT EXISTS nazwa_tabeli (definicja tabeli);
skoro nie potrafisz skorzystac ze slownika systemowego, to wykonaj samo
CREATE i przechwyc blad w wypadku kiedy tablica istnieje i po zawodach.

marcin
Loading...