[PostgreSQL] cudzyslow wewnatrz apostrofow => ' " ... " '
a.sosialuk@googlemail.com - 28-10-2007 00:02
[PostgreSQL] cudzyslow wewnatrz apostrofow => ' " ... " '
Witam serdecznie,
Jestem nowy na grupie i dopiero zaczalem przygode z postgresql.
Twarzac sekwencje w ten sposob:
CREATE SEQUENCE "MySeq";
tworzymy sekwencje ktora jest "wrazliwa" na wielkosc liter. Teraz gdy ktos zechce jej uzyc, to moze to zrobic, np tak:
INSERT INTO moja_tabela_z_sekwencja VALUES (nextval('"MySeq"'), .......
Gdybysmy napisali nextval('MySeq') otrzymalibysmy blad, ze "myseq" nie istnieje. Interesuje mnie, dlaczego nie moge tego tak zrobic i dlaczego trzeba az dwoch par - ' " " ' ..... W manualu nic na ten temat nie znalazlem. Jest tam mowa o identyfikatorach w cudzyslowiu i stalych w apostrofach (stalych tekstowych). Rozumiem, ze tutaj identyfikatorem jest MySeq, wiec to by sie zgadzalo. Ale nextval i tak pobiera argument jako tekst (mam racje ?) a tekst wymaga apostrofow. Wiec dlaczego nie mozna nextval('MySeq') ? Dlaczego jest to zamieniane na "myseq" ? Przeciez dla komendy
DELETE FROM moja_tabela WHERE moje_pole='Tekst';
zostana usuniete tylko wiersze, ktore zawieraja "Tekst" a nie "tekst".
Z gory dziekuje za wskazowki.
Adrian
A.L.E.C - 29-10-2007 00:00
a.sosialuk@googlemail.com pisze:
> ze tutaj identyfikatorem > jest MySeq, wiec to by sie zgadzalo. Ale nextval i tak pobiera > argument jako tekst (mam racje ?)
http://www.postgresql.org/docs/curre...-sequence.html, tu jest wszystko dokładnie opisane
-- Aleksander 'A.L.E.C' Machniak http://alec.pl gg:2275252 LAN Management System Developer http://lms.org.pl
keczerad - 29-10-2007 00:00
a.sosialuk@googlemail.com pisze: > Witam serdecznie, > > Jestem nowy na grupie i dopiero zaczalem przygode z postgresql. > > Twarzac sekwencje w ten sposob: > > CREATE SEQUENCE "MySeq"; > > tworzymy sekwencje ktora jest "wrazliwa" na wielkosc liter. Teraz gdy > ktos > zechce jej uzyc, to moze to zrobic, np tak: > > INSERT INTO moja_tabela_z_sekwencja VALUES > (nextval('"MySeq"'), .......
jak dla mnie, na dzien dzisiejszy a znam baze od 2 mesiecy to jej najpowazniejsza wada, mysql jak i mssql po prostu nie widzi jak sie wpisze zle nazwe tablicy czy jakiejkolwiek zmiennej napisanej z malej litery, ale nie trzeba stosowac tych piep.... ["]. Jak dla mnie na dzien dzisiejszy nie widze jakichkolwiek przeslanek zeby stosowac takie "czarodziejstwo".
> Gdybysmy napisali nextval('MySeq') otrzymalibysmy blad, ze "myseq" nie > istnieje. > Interesuje mnie, dlaczego nie moge tego tak zrobic i dlaczego trzeba > az dwoch par - > ' " " ' ..... W manualu nic na ten temat nie znalazlem. Jest tam > mowa o identyfikatorach > w cudzyslowiu i stalych w apostrofach (stalych tekstowych). Rozumiem, > ze tutaj identyfikatorem > jest MySeq, wiec to by sie zgadzalo. Ale nextval i tak pobiera > argument jako tekst (mam racje ?) > a tekst wymaga apostrofow. Wiec dlaczego nie mozna nextval('MySeq') ? > Dlaczego jest to > zamieniane na "myseq" ? Przeciez dla komendy > > DELETE FROM moja_tabela WHERE moje_pole='Tekst';
to akurat to jest poprawne, ale zeby trzeba bylo tabele i zmienne wpisywac to masakra.
--
keczerad
http://www.e-mo.com.pl sklep w (X)HTML wraz z modulem do Subiekta GT
hubert depesz lubaczewski - 29-10-2007 00:00
Dnia 28.10.2007 keczerad <keczerad@poczta.fm> napisał/a: > jak dla mnie, na dzien dzisiejszy a znam baze od 2 mesiecy to jej > najpowazniejsza wada, mysql jak i mssql po prostu nie widzi jak sie > wpisze zle nazwe tablicy czy jakiejkolwiek zmiennej napisanej z malej > litery, ale nie trzeba stosowac tych piep.... ["]. Jak dla mnie na dzien > dzisiejszy nie widze jakichkolwiek przeslanek zeby stosowac takie > "czarodziejstwo".
hint: nie stosuj. postgres wymusza stosowanie " tylko jeśli *ty* użyłeś tego jako pierwszy.
create table TestDepesza (x int4); select * from TestDepesza;
i wszystko działa.
depesz
-- quicksil1er: "postgres is excellent, but like any DB it requires a highly paid DBA. here's my CV!" :) http://www.depesz.com/ - blog dla ciebie (i moje CV)
keczerad - 29-10-2007 00:00
hubert depesz lubaczewski pisze: > Dnia 28.10.2007 keczerad <keczerad@poczta.fm> napisał/a: >> jak dla mnie, na dzien dzisiejszy a znam baze od 2 mesiecy to jej >> najpowazniejsza wada, mysql jak i mssql po prostu nie widzi jak sie >> wpisze zle nazwe tablicy czy jakiejkolwiek zmiennej napisanej z malej >> litery, ale nie trzeba stosowac tych piep.... ["]. Jak dla mnie na dzien >> dzisiejszy nie widze jakichkolwiek przeslanek zeby stosowac takie >> "czarodziejstwo". > > hint: nie stosuj. > postgres wymusza stosowanie " tylko jeśli *ty* użyłeś tego jako > pierwszy. > > create table TestDepesza (x int4); > select * from TestDepesza; > > i wszystko działa. > > depesz >
ja akurat mam problem w polach tabeli :)
Select m_Id from tabela
niestety nie dziala
Select "m_Id" from tabela
a to juz tak, troche to chore szczerze mowiac, chyba ze czegos nie wiem co jest bardzo mozliwe.
--
keczerad
http://www.e-mo.com.pl sklep w (X)HTML wraz z modulem do Subiekta GT
hubert depesz lubaczewski - 29-10-2007 00:00
Dnia 28.10.2007 keczerad <keczerad@poczta.fm> napisał/a: > ja akurat mam problem w polach tabeli :) > Select m_Id from tabela > niestety nie dziala > Select "m_Id" from tabela > a to juz tak, troche to chore szczerze mowiac, chyba ze czegos nie wiem > co jest bardzo mozliwe.
skoro użyłeś " przy zakładaniu tabeli to teraz nie marudź :)
" jest wymuszane tylko jak przy zakładaniu też było użyte.
depesz
-- quicksil1er: "postgres is excellent, but like any DB it requires a highly paid DBA. here's my CV!" :) http://www.depesz.com/ - blog dla ciebie (i moje CV)
keczerad - 29-10-2007 00:00
hubert depesz lubaczewski pisze:
> skoro użyłeś " przy zakładaniu tabeli to teraz nie marudź :) > > " jest wymuszane tylko jak przy zakładaniu też było użyte.
ja uzylem do tego pgAdmina, wynika stad ze bylem nieswiadomy, ale dzieki za wskazówke, od razu mowilem ze czegos nie wiem ;).
--
keczerad
http://www.e-mo.com.pl sklep w (X)HTML wraz z modulem do Subiekta GT
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
[PostgreSQL] - jak =?ISO-8859-2?Q?zabezpieczy=E6_interesy_tw?==?ISO-8859-2?Q?=F3rcy_systemu_=3F=3F=3F?=
postgresql - int/int
postgresql Select count(*) czy raczej Select count(ID)
[PostgreSQL] jak =?ISO-8859-2?Q?pobra=E6_warto=B6=E6_zwracan?==?ISO-8859-2?Q?=B1_przez_funkcj=EA=3F?=
[postgresql] INSERT OR UPDATE - jak =?ISO-8859-2?Q?b=EAdzie_na?==?ISO-8859-2?Q?jlepiej=3F?=
[postgresql] kilka =?ISO-8859-2?Q?rekord=F3w_subquery_jako_?==?ISO-8859-2?Q?string?=
[PostgreSQL] Jak =?ISO-8859-2?Q?po=B3=B1czy=E6_funkcje_z_w?==?ISO-8859-2?Q?idokiem?=
Postgres - replikcja master-master
Dopasowanie do "najlepszego" dopasowania :) [ PostgreSQL]
Problemy z =?ISO-8859-2?Q?instalacj=B1_PostgreSQL_na_syste?==?ISO-8859-2?Q?mach_Windows?=
zanotowane.pldoc.pisz.plpdf.pisz.plnocnerozmowy.xlx.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|