3ps Posted July 9, 2003 Report Share Posted July 9, 2003 Man ir sakrājušies daudz jautājienu par PostgreSQL izmantošanu. Pirmais jautājums. Kādam jābūt unix lietotāja postgres (postgresql superlietotājs) shellam? /bin/bash nav par traku? Un vēl otrs jautājiens uzreiz: Kur postgresam stāv log fails??? Jā, atbilde ir manuālī. Trešais jautājiens: Kā var noskaidrot pēdējo insert_id no serial lauka ar Postgres palīdzību (nevis PHP) - man vajag vienas transakcijas ietvaros to zināt un uzreiz izmantot. Atbilde uz trešo jautājumu: Tā nu iznāca, ka pats nonācu pie atbildes ātrāk nekā kaut ko sagaidīju no jums. Tātad vispirms uztaisam SEQUENCE priekš id ģenerēšanas: CREATE SEQUENCE id_seq START 0 INCREMENT 1; Insertu organizē funkcija: CREATE FUNCTION add_record(VARCHAR) RETURN INTEGER AS ' DECLARE record_vards ALIAS FOR $1; BEGIN SELECT INTO record_id nextval ('id_seq'); INSERT INTO tabula (id, vards) VALUES (record_id, record_vards); RETURN record_id; END; ' LANGUAGE 'sql' SECURITY DEFINER Vēlāk izsauksim ar SELECT pievienot_personu('Jurčiks'); Johaidī. Tikko sapratu. Man vajadzēja taisīt ./configure ... --enable-multibyte Beeee. Ko man darīt tagad? Tas ir ceturtais jautājums. Bļē. un ziniet ko es tagad sapratu? Tagad es sapratu, ka man vēl vaig PL/pgSQL uzstādīt. Un kad es to stādu, tad man izlec, bļe, createlang: external error. Ko lai daru, māt? Ak, jā, jābūt taču lietotājam postgres, lai palaistu šo createlang. Bet vispār kad nomainījos uz postgres, tad šis man četras reizes paroli uzprasīja, bet languagi tā arī neiestādīja iekš template1. vai nav cūka? retorisks jautājums. un tomēr atbildēšu. jā, ir cūka. Bet vispār. Kaut kas iet uz priekšu. Ko tad es izdarīju? Nomainīju lietotāja vārdu uz postgres. Iegāju psql un izpildīju šito te komandiņu (no grāmatas PRACTICAL POSTGRESQL [o'reilly]). Džeks atbildēja CREATE FUNCTION, sou FUNCTION ir izveidots. Tagad jāņem CREATE LANGUAGE priekšā: CREATE LANGUAGE 'plpgsql' HANDLER plpgsql_call_handler LANCOMPILER 'PL/pgsql'; Kad šito palaidu (iekš psql joprojām), tad saņēmu visnotaļ patīkamu responsi: NOTICE: CreateProceduralLanguage: changing return type of function plpgsql_call_handler() from OPAQUE to LANGUAGE_HANDLER CREATE LANGUAGE Pēc tam izgāju laukā no psql un saņēmu un čekoju kā uzstādījies: # /usr/local/pgsql/bin/createlang -l Password: Procedural languages Name | Trusted? ---------+---------- plpgsql | f (1 row) Nafig tas f ? Tūlīt palasīsimies. A tagad vajadzēs man par jaunu taisīt db iekš šitā paša klāstera, jo vecās jau nemainīsies, ja es tagad tikai šablonbāzi template1 izmainu. vo maitas Link to comment Share on other sites More sharing options...
Recommended Posts