- "http://www.php.net">PHP from http://www.php.net)
+
PHP ('pg_' functions, Pear::DB)
-
äÏÐÏÌÎÉÔÅÌØÎÙÅ ÉÎÔÅÒÆÅÊÓÙ ÄÏÓÔÕÐÎÙ ÐÏ ÁÄÒÅÓÕ
- http://www.postgresql.org/interfaces.html.
+
äÏÐÏÌÎÉÔÅÌØÎÙÅ ÉÎÔÅÒÆÅÊÓÙ ÄÏÓÔÕÐÎÙ ÐÏ ÁÄÒÅÓÕ
+ É
åÓÌÉ ×Ù ×ÙÐÏÌÎÑÅÔÅ ÍÎÏÇÏ ÏÐÅÒÁÔÏÒÏ× INSERT,
ÒÁÓÓÍÏÔÒÉÔÅ ×ÏÚÍÏÖÎÏÓÔØ ×ÙÐÏÌÎÑÔØ ÉÈ × ÂÏÌØÛÏÊ ÐÁÞËÅ, ÉÓÐÏÌØÚÕÑ
ËÏÍÁÎÄÕ COPY. üÔÏ ÚÎÁÞÉÔÅÌØÎÏ ÂÙÓÔÒÅÅ, ÞÅÍ ÏÔÄÅÌØÎÙÅ
- INSERT. ÷Ï-×ÔÏÒÙÈ, ÏÐÅÒÁÔÏÒÙ ×ÎÅ ÂÌÏËÁ ÔÒÁÎÚÁËÃÉÉ
+ INSERT. ÷Ï-×ÔÏÒÙÈ, ÏÐÅÒÁÔÏÒÙ ×ÎÅ ÂÌÏËÁ ÔÒÁÎÚÁËÃÉÉ
BEGIN WORK/COMMIT ÓÁÍÉ ×ÙÐÏÌÎÑÀÔ ÔÒÁÎÚÁËÃÉÀ. ðÏÄÕÍÁÊÔÅ
ÎÁÄ ×ÙÐÏÌÎÅÎÉÅÍ ÎÅÓËÏÌØËÉÈ ÏÐÅÒÁÔÏÒÏ× × ÏÄÎÏÍ ÂÌÏËÅ ÔÒÁÎÚÁËÃÉÉ.
üÔÏ ÕÍÅÎØÛÉÔ ËÏÌÉÞÅÓÔ×Ï ÔÒÁÎÚÁËÃÉÊ. ôÁËÖÅ, ÚÁÄÕÍÁÊÔÅÓØ ÎÁÄ ÕÄÁÌÅÎÉÅÍ
åÓÌÉ postmaster ÚÁÐÕÝÅÎ, ÚÁÐÕÓÔÉÔÅ psql × ÏÄÎÏÍ
ÏËÎÅ, ÚÁÔÅÍ ÎÁÊÄÉÔÅ PID ÐÒÏÃÅÓÓÁ postgres,
ÉÓÐÏÌØÚÕÅÍÙÊ psql. éÓÐÏÌØÚÕÊÔÅ ÏÔÄÁÄÞÉË ÄÌÑ ÐÏÄËÌÀÞÅÎÉÑ Ë
- postgres PID. ÷Ù ÍÏÖÅÔÅ ÕÓÔÁÎÏ×ÉÔØ ÔÏÞËÉ
+ postgres PID. ÷Ù ÍÏÖÅÔÅ ÕÓÔÁÎÏ×ÉÔØ ÔÏÞËÉ
ÐÒÅÒÙ×ÁÎÉÑ × ÏÔÌÁÄÞÉËÅ É ÚÁÐÕÓÔÉÔØ ÚÁÐÒÏÓ ÉÚ psql. åÓÌÉ
×Ù ÐÒÏÉÚ×ÏÄÉÔÅ ÏÔÌÁÄËÕ ÚÁÐÕÓËÁ postgres, ×Ù ÍÏÖÅÔÅ ÕÓÔÁÎÏ×ÉÔØ
PGOPTIONS="-W n", É ÚÁÔÅÍ ÚÁÐÕÓÔÉÔØ psql. üÔÁ ÏÐÃÉÑ ÐÒÉ×ÏÄÉÔ
ÓÅÍÁÆÏÒÏ×, SEMMNS É SEMMNI; ÍÁËÓÉÍÁÌØÎÏÅ
ËÏÌÉÞÅÓÔ×Ï ÐÒÏÃÅÓÓÏ×, NPROC; ÍÁËÓÉÍÁÌØÎÏÅ ËÏÌÉÞÅÓÔ×Ï
ÐÒÏÃÅÓÓÏ× ÎÁ ÐÏÌØÚÏ×ÁÔÅÌÑ, MAXUPRC; É ÍÁËÓÉÍÁÌØÎÏÅ
- ËÏÌÉÞÅÓÔ×Ï ÏÔËÒÙÔÙÈ ÆÁÊÌÏ×, NFILE É NINODE.
+ ËÏÌÉÞÅÓÔ×Ï ÏÔËÒÙÔÙÈ ÆÁÊÌÏ×, NFILE É NINODE.
ðÒÉÞÉÎÁ ÓÏÚÄÁÎÉÑ ÏÇÒÁÎÉÞÅÎÉÑ ÎÁ ËÏÌÉÞÅÓÔ×Ï backend ÐÒÏÃÅÓÓÏ× ËÁË
ÒÁÚ É ÓÏÓÔÏÉÔ × ÔÏÍ, ÞÔÏÂÙ ×ÁÛÅÊ ÓÉÓÔÅÍÅ È×ÁÔÉÌÏ ÒÅÓÕÒÓÏ×.
ÂÙÌÏ 64, É ÉÚÍÅÎÅÎÉÅ ÜÔÏÇÏ ËÏÌÉÞÅÓÔ×Á ÔÒÅÂÏ×ÁÌÏ ÐÅÒÅËÏÍÐÉÌÑÃÉÉ ÐÏÓÌÅ
ÕÓÔÁÎÏ×ËÉ ËÏÎÓÔÁÎÔÙ MaxBackendId × include/storage/sinvaladt.h.
-
3.9) þÔÏ ÜÔÏ ÚÁ ÆÁÊÌÙ pg_sorttempNNN.NN
- × ÍÏÅÍ ËÁÔÁÌÏÇÅ Ó ÂÁÚÏÊ ÄÁÎÎÙÈ?
-
-
üÔÏ ×ÒÅÍÅÎÎÙÅ ÆÁÊÌÙ, ÇÅÎÅÒÉÒÕÅÍÙÅ ×Ï ×ÒÅÍÑ ×ÙÐÏÌÎÅÎÉÑ ÚÁÐÒÏÓÁ.
- îÁÐÒÉÍÅÒ, ÅÓÌÉ ÄÌÑ ÏÐÅÒÁÔÏÒÁ ORDER BY ÄÏÌÖÎÁ ÂÙÔØ
- ×ÙÐÏÌÎÅÎÁ ÓÏÒÔÉÒÏ×ËÁ, ËÏÔÏÒÁÑ ÔÒÅÂÕÅÔ ÂÏÌØÛÅ ÍÅÓÔÁ ÞÅÍ ×ÙÄÅÌÅÎÎÏ
- ÄÌÑ backend ÐÒÏÃÅÓÓÁ × ÏÐÃÉÉ -S, ÔÏ ÓÏÚÄÁÅÔÓÑ ×ÒÅÍÅÎÎÙÊ ÆÁÊÌ ÄÌÑ
- ÈÒÁÎÅÎÉÑ ÄÏÐÏÌÎÉÔÅÌØÎÙÈ ÄÁÎÎÙÈ.
+
3.9) þÔÏ ÎÁÈÏÄÉÔÓÑ × ËÁÔÁÌÏÇÅ pgsql_tmp?
-
÷ÒÅÍÅÎÎÙÅ ÆÁÊÌÙ ÄÏÌÖÎÙ ÕÄÁÌÑÔØÓÑ Á×ÔÏÍÁÔÉÞÅÓËÉ, ÎÏ ÜÔÏÇÏ ÍÏÖÅÔ
- ÎÅ ÐÒÏÉÓÈÏÄÉÔØ, ÅÓÌÉ backend ÐÒÏÃÅÓÓ ÐÁÄÁÅÔ ×Ï ×ÒÅÍÑ ÓÏÒÔÉÒÏ×ËÉ.
- åÓÌÉ Õ ×ÁÓ ÎÅ ÚÁÐÕÝÅÎÏ ÎÉ ÏÄÎÏÇÏ backend ÐÒÏÃÅÓÓÁ, ÔÏ ×Ù ÍÏÖÅÔÅ
- ÓÐÏËÏÊÎÏ ÕÄÁÌÉÔØ ÆÁÊÌÙ pg_tempNNN.NN.
+
äÁÎÎÙÊ ËÁÔÁÌÏÇ ÓÏÄÅÒÖÉÔ ×ÒÅÍÅÎÎÙÅ ÆÁÊÌÙ, ÇÅÎÅÒÉÒÕÅÍÙÅ ÏÂÒÁÂÏÔÞÉËÏÍ
+ ÚÁÐÒÏÓÁ. îÁÐÒÉÍÅÒ, ÅÓÌÉ ÄÌÑ ×ÙÐÏÌÎÅÎÉÑ ORDER BY ÎÕÖÎÁ
+ ÓÏÒÔÉÒÏ×ËÁ É ÜÔÁ ÓÏÒÔÉÒÏ×ËÁ ÔÒÅÂÕÅÔ ÐÁÍÑÔÉ ÂÏÌØÛÅ, ÞÅÍ ÄÏÐÕÓËÁÅÔ ÐÁÒÁÍÅÔÒ -S
+ Õ backend'Á, ÔÏ ÄÌÑ ÈÒÁÎÅÎÉÑ ÄÏÐÏÌÎÉÔÅÌØÎÙÈ ÄÁÎÎÙÈ ÓÏÚÄÁÀÔÓÑ ×ÒÅÍÅÎÎÙÅ
+ ÆÁÊÌÙ.
+
+
üÔÉ ×ÒÅÍÅÎÎÙÅ ÆÁÊÌÙ ÄÏÌÖÎÙ ÕÄÁÌÑÔØÓÑ Á×ÔÏÍÁÔÉÞÅÓËÉ, ÎÏ ÜÔÏÇÏ ÍÏÖÅÔ ÎÅ
+ ÐÒÏÉÚÏÊÔÉ, ÅÓÌÉ backend ÒÕÈÎÕÌ ×Ï ×ÒÅÍÑ ÓÏÒÔÉÒÏ×ËÉ. ïÓÔÁÎÏ× É ÚÁÐÕÓË
+ ÓÅÒ×ÅÒÎÏÇÏ ÐÒÏÃÅÓÓÁ ÏÂÅÓÐÅÞÉÔ ÉÈ ÕÄÁÌÅÎÉÅ ÉÚ ËÁÔÁÌÏÇÁ.
-
3.10) ðÏÞÅÍÕ ÎÅÏÂÈÏÄÉÍÏ ÄÅÌÁÔØ dump É restore ÐÒÉ
- ÏÂÎÏ×ÌÅÎÉÉ ×ÙÐÕÓËÏ× PostgreSQL?<BR>
+
3.10) ðÏÞÅÍÕ ÎÅÏÂÈÏÄÉÍÏ ÄÅÌÁÔØ dump É restore ÐÒÉ
+ ÏÂÎÏ×ÌÅÎÉÉ ×ÙÐÕÓËÏ× PostgreSQL?</H4>
òÁÚÒÁÂÏÔÞÉËÉ PostgreSQL ÄÅÌÁÀÔ ÔÏÌØËÏ ÎÅÂÏÌØÛÉÅ ÉÚÍÅÎÅÎÉÑ ÍÅÖÄÕ
ÐÏÄ×ÙÐÕÓËÁÍÉ. ôÁËÉÍ ÏÂÒÁÚÏÍ ÏÂÎÏ×ÌÅÎÉÅ Ó ×ÅÒÓÉÉ 7.2 ÄÏ 7.2.1 ÎÅ ÔÒÅÂÕÅÔ
- ×ÙÐÏÌÎÅÎÉÑ dump É restore. ïÄÎÁËÏ ÐÒÉ ×ÙÈÏÄÅ ÏÞÅÒÅÄÎÏÇÏ ×ÙÐÕÓËÁ ÞÁÓÔÏ
- ÍÅÎÑÅÔÓÑ ×ÎÕÔÒÅÎÎÉÊ ÆÏÒÍÁÔ ÓÉÓÔÅÍÎÙÈ ÔÁÂÌÉÃ É ÆÁÊÌÏ× ÄÁÎÎÙÈ. üÔÉ
- ÉÚÍÅÎÅÎÉÑ ÞÁÓÔÏ ÎÏÓÑÔ ËÏÍÐÌÅËÓÎÙÊ ÈÁÒÁËÔÅÒ, ÔÁË ÞÔÏ ÎÅÔ ×ÏÚÍÏÖÎÏÓÔÉ
- ÏÂÅÓÐÅÞÉÔØ ÏÂÒÁÔÎÕÀ ÓÏ×ÍÅÓÔÉÍÏÓÔØ ÆÁÊÌÏ× ÄÁÎÎÙÈ. ÷ÙÐÏÌÅÎÉÅ dump
- ÐÏÚ×ÏÌÑÅÔ ÐÏÌÕÞÉÔØ ÄÁÎÎÙÅ × ÏÂÝÅÍ ÆÏÒÍÁÔÅ, ËÏÔÏÒÙÊ ÚÁÔÅÍ ÍÏÖÅÔ ÂÙÔØ
- ÚÁÇÒÕÖÅÎ ÐÒÉ ÉÓÐÏÌØÚÏ×ÁÎÉÉ ÎÏ×ÏÇÏ ×ÎÕÔÒÅÎÎÅÇÏ ÆÏÒÍÁÔÁ.
+ ×ÙÐÏÌÎÅÎÉÑ dump É restore. ïÄÎÁËÏ ÐÒÉ ×ÙÈÏÄÅ ÏÞÅÒÅÄÎÏÇÏ ×ÙÐÕÓËÁ
+ (Ô.Å. ÐÒÉ ÏÂÎÏ×ÌÅÎÉÉ ÎÁÐÒÉÍÅÒ, Ó 7.2 ÎÁ 7.3) ÞÁÓÔÏ ÍÅÎÑÅÔÓÑ ×ÎÕÔÒÅÎÎÉÊ
+ ÆÏÒÍÁÔ ÓÉÓÔÅÍÎÙÈ ÔÁÂÌÉÃ É ÆÁÊÌÏ× ÄÁÎÎÙÈ. üÔÉ ÉÚÍÅÎÅÎÉÑ ÞÁÓÔÏ ÎÏÓÑÔ
+ ËÏÍÐÌÅËÓÎÙÊ ÈÁÒÁËÔÅÒ, ÔÁË ÞÔÏ ÎÅÔ ×ÏÚÍÏÖÎÏÓÔÉ ÏÂÅÓÐÅÞÉÔØ ÏÂÒÁÔÎÕÀ
+ ÓÏ×ÍÅÓÔÉÍÏÓÔØ ÆÁÊÌÏ× ÄÁÎÎÙÈ. ÷ÙÐÏÌÅÎÉÅ dump ÐÏÚ×ÏÌÑÅÔ ÐÏÌÕÞÉÔØ ÄÁÎÎÙÅ
+ × ÏÂÝÅÍ ÆÏÒÍÁÔÅ, ËÏÔÏÒÙÊ ÚÁÔÅÍ ÍÏÖÅÔ ÂÙÔØ ÚÁÇÒÕÖÅÎ ÐÒÉ ÉÓÐÏÌØÚÏ×ÁÎÉÉ
+ ÎÏ×ÏÇÏ ×ÎÕÔÒÅÎÎÅÇÏ ÆÏÒÍÁÔÁ.
- ÷ ÔÅÈ ×ÙÐÕÓËÁÈ, ÇÄÅ ÆÏÒÍÁÔ ÄÁÎÎÙÈ ÎÁ ÄÉÓËÅ ÎÅ ÍÅÎÑÅÔÓÑ, ÄÌÑ ÐÒÏ×ÅÄÅÎÉÑ
+
÷ ÔÅÈ ×ÙÐÕÓËÁÈ, ÇÄÅ ÆÏÒÍÁÔ ÄÁÎÎÙÈ ÎÁ ÄÉÓËÅ ÎÅ ÍÅÎÑÅÔÓÑ, ÄÌÑ ÐÒÏ×ÅÄÅÎÉÑ
ÏÂÎÏ×ÌÅÎÉÑ ÍÏÖÅÔ ÂÙÔØ ÉÓÐÏÌØÚÏ×ÁÎ ÓÃÅÎÁÒÉÊ pg_upgrade ÂÅÚ
ÉÓÐÏÌØÚÏ×ÁÎÉÑ dump/restore. ëÏÍÍÅÎÔÁÒÉÉ Ë ×ÙÐÕÓËÕ ÇÏ×ÏÒÉÔ ËÏÇÄÁ ÍÏÖÎÏ
- ÉÓÐÏÌØÚÏ×ÁÔØ pg_upgrade ÄÌÑ ÜÔÏÇÏ ×ÙÐÕÓËÁ.
-
+ ÉÓÐÏÌØÚÏ×ÁÔØ pg_upgrade ÄÌÑ ÜÔÏÇÏ ×ÙÐÕÓËÁ.
÷ÏÐÒÏÓÙ ÜËÓÐÌÕÁÔÁÃÉÉ
4.4) ëÁË ÕÄÁÌÉÔØ ËÏÌÏÎËÕ ÉÚ ÔÁÂÌÉÃÙ?
-
íÙ ÎÅ ÐÏÄÄÅÒÖÉ×ÁÅÍ ALTER TABLE DROP COLUMN, ÎÏ
+
üÔÁ ÆÕÎËÃÉÏÎÁÌØÎÏÓÔØ ÂÙÌÁ ÄÏÂÁ×ÌÅÎÁ × ×ÙÐÕÓË 7.3 Ó ÏÐÅÒÁÔÏÒÏÍ
+ ALTER TABLE DROP COLUMN. ÷ ÒÁÎÎÉÈ ×ÅÒÓÉÑÈ,
ÍÏÖÎÏ ÓÄÅÌÁÔØ ÔÁË:
BEGIN;
SELECT col
FROM tab
ORDER BY col [ DESC ]
- LIMIT 1
+ LIMIT 1;
ëÏÇÄÁ ÉÓÐÏÌØÚÕÀÔÓÑ ÏÐÅÒÁÃÉÉ Ó ÛÁÂÌÏÎÁÍÉ, ÎÁÐÒÉÍÅÒ LIKE
- ÉÌÉ ~, ÉÎÄÅËÓÙ ÍÏÇÕÔ ÂÙÔØ ÉÓÐÏÌØÚÏ×ÁÎÙ × ÓÌÅÄÕÀÝÉÈ ÓÌÕÞÁÑÈ:
-
îÁÞÁÌÏ ÓÔÒÏËÉ ÐÏÉÓËÁ ÄÏÌÖÎÏ ÓÏ×ÐÁÄÁÔØ Ó ÎÁÞÁÌÏÍ ÉÓËÏÍÏÊ ÓÔÒÏËÉ, Ô.Å.:
+ ÉÌÉ ~, ÉÎÄÅËÓÙ ÍÏÇÕÔ ÂÙÔØ ÉÓÐÏÌØÚÏ×ÁÎÙ × ÓÌÅÄÕÀÝÉÈ ÓÌÕÞÁÑÈ:
-
LIKE ÛÁÂÌÏÎÙ ÎÅ ÄÏÌÖÎÙ ÎÁÞÉÎÁÔØÓÑ Ó %.
-
~ ÛÁÂÌÏÎÙ ÒÅÇÕÌÑÒÎÙÈ ×ÙÒÁÖÅÎÉÊ ÄÏÌÖÎÁ ÎÁÞÉÎÁÔØÓÑ ÎÁ ^.
-
+
îÁÞÁÌÏ ÓÔÒÏËÉ ÐÏÉÓËÁ ÄÏÌÖÎÏ ÓÏ×ÐÁÄÁÔØ Ó ÎÁÞÁÌÏÍ ÉÓËÏÍÏÊ ÓÔÒÏËÉ, Ô.Å.:
+
LIKE ÛÁÂÌÏÎÙ ÎÅ ÄÏÌÖÎÙ ÎÁÞÉÎÁÔØÓÑ Ó %..
+
~ ÛÁÂÌÏÎÙ ÒÅÇÕÌÑÒÎÙÈ ×ÙÒÁÖÅÎÉÊ ÄÏÌÖÎÁ ÎÁÞÉÎÁÔØÓÑ ÎÁ ^.
+
óÔÒÏËÁ ÐÏÉÓËÁ ÎÅ ÄÏÌÖÎÁ ÎÁÞÉÎÁÔØÓÑ Ó ÓÉÍ×ÏÌÁ ËÌÁÓÓÁ, Ô.Å. [a-e].
-
îÅ ÄÏÌÖÅÎ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ ÐÏÉÓË ÎÅÚÁ×ÉÓÉÍÙÊ ÏÔ ÒÅÇÉÓÔÒÁ ÔÁËÏÊ ËÁË
- <small>ILIKE É ~. ÷ÍÅÓÔÏ ÎÅÇÏ ÉÓÐÏÌØÚÕÊÔÅ ÆÕÎËÃÉÏÎÁÌØÎÙÅ
- ÉÎÄÅËÓÙ, ËÏÔÏÒÙÅ ÏÐÉÓÁÎÙ × ÜÔÏÍ FAQ ÎÉÖÅ.
+
ðÏÉÓË ÎÅÚÁ×ÉÓÉÍÙÊ ÏÔ ÒÅÇÉÓÔÒÁ, ÔÁËÏÊ ËÁË ILIKE É
+ <i>~* ÎÅ ÉÓÐÏÌØÚÕÅÔ ÉÎÄÅËÓÙ. ÷ÍÅÓÔÏ ÎÅÇÏ, ÉÓÐÏÌØÚÕÊÔÅ ÆÕÎËÃÉÏÎÁÌØÎÙÅ
+ ÉÎÄÅËÓÙ, ËÏÔÏÒÙÅ ÏÐÉÓ
Ù×ÁÀÔÓÑ × ÓÅËÃÉÉ 4.12.
÷Ï ×ÒÅÍÑ initdb ÄÏÌÖÎÁ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ ÌÏËÁÌØ ÐÏ ÕÍÏÌÞÁÎÉÀ
C.
SELECT *
FROM tab
- WHERE lower(col) = 'abc'
+ WHERE lower(col) = 'abc';
üÔÁ ËÏÎÓÔÒÕËÃÉÑ ÎÅ ÂÕÄÅÔ ÉÓÐÏÌØÚÏ×ÁÔØ ÓÔÁÎÄÁÒÔÎÙÊ ÉÎÄÅËÓ. ïÄÎÁËÏ, ÅÓÌÉ
×Ù ÓÏÚÄÁÄÉÔÅ ÆÕÎËÃÉÏÎÁÌØÎÙÊ ÉÎÄÅËÓ, ÏÎ ÂÕÄÅÔ ÉÓÐÏÌØÚÏ×ÁÎ:
- CREATE INDEX tabindex on tab (lower(col));
+ CREATE INDEX tabindex ON tab (lower(col));
4.13) ëÁË Ñ ÍÏÇÕ ÏÐÒÅÄÅÌÉÔØ, ÞÔÏ ÚÎÁÞÅÎÉÅ ÐÏÌÑ
ôÉÐ ÷ÎÕÔÒÅÎÎÅÅ ÉÍÑ úÁÍÅÞÁÎÉÑ
--------------------------------------------------
"char" char 1 ÓÉÍ×ÏÌ
-CHAR(#) bpchar ÚÁÐÏÌÎÑÅÔÓÑ ÐÕÓÔÏÔÏÊ ÄÏ ÆÉËÓÉÒÏ×ÁÎÎÏÊ ÄÌÉÎÙ
-VARCHAR(#) varchar ÒÁÚÍÅÒ ÚÁÄÁÅÔ ÍÁËÓÉÍÁÌØÎÕÀ ÄÌÉÎÕ, ÎÅÔ ÚÁÐÏÌÎÅÎÉÑ
+CHAR(n) bpchar ÚÁÐÏÌÎÑÅÔÓÑ ÐÕÓÔÏÔÏÊ ÄÏ ÆÉËÓÉÒÏ×ÁÎÎÏÊ ÄÌÉÎÙ
+VARCHAR(n) varchar ÒÁÚÍÅÒ ÚÁÄÁÅÔ ÍÁËÓÉÍÁÌØÎÕÀ ÄÌÉÎÕ, ÎÅÔ ÚÁÐÏÌÎÅÎÉÑ
TEXT text ÎÅÔ ÚÁÄÁ×ÁÅÍÏÇÏ ×ÅÒÈÎÅÇÏ ÏÇÒÁÎÉÞÅÎÉÑ ÉÌÉ ÄÌÉÎÙ
BYTEA bytea ÍÁÓÓÉ× ÂÁÊÔ ÐÅÒÅÍÅÎÎÏÊ ÄÌÉÎÙ (ÍÏÖÎÏ ÉÓÐÏÌØÚÏ×ÁÔØ null-ÂÁÊÔ ÂÅÚ ÏÐÁÓËÉ)
ÔÁË ÞÔÏ ÚÁÎÉÍÁÅÍÏÅ ÄÉÓËÏ×ÏÅ ÐÒÏÓÔÒÁÎÓÔ×Ï ÍÏÖÅÔ ÔÁËÖÅ ÂÙÔØ É ÍÅÎØÛÅ,
ÞÅÍ ÏÖÉÄÁÌÏÓØ.
-
CHAR() - ÜÔÏ ÌÕÞÛÅÅ ÒÅÛÅÎÉÅ ÄÌÑ ÈÒÁÎÅÎÉÑ ÓÔÒÏË, ËÏÔÏÒÙÅ
- ÏÂÙÞÎÏ ÉÍÅÀÔ ÏÄÉÎÁËÏ×ÕÀ ÄÌÉÎÕ. VARCHAR() - ÜÔÏ ÌÕÞÛÅÅ
+
CHAR(n) - ÜÔÏ ÌÕÞÛÅÅ ÒÅÛÅÎÉÅ ÄÌÑ ÈÒÁÎÅÎÉÑ ÓÔÒÏË, ËÏÔÏÒÙÅ
+ ÏÂÙÞÎÏ ÉÍÅÀÔ ÏÄÉÎÁËÏ×ÕÀ ÄÌÉÎÕ. VARCHAR(n) - ÜÔÏ ÌÕÞÛÅÅ
ÒÅÛÅÎÉÅ, ËÏÇÄÁ ÎÕÖÎÏ ÈÒÁÎÉÔØ ÓÔÒÏËÉ ÐÅÒÅÍÅÎÎÏÊ ÄÌÉÎÙ, ÎÏ ÎÅ ÐÒÅ×ÙÛÁÀÝÉÅ
ÏÐÒÅÄÅÌÅÎÎÏÇÏ ÒÁÚÍÅÒÁ. TEXT - ÜÔÏ ÌÕÞÛÅÅ ÒÅÛÅÎÉÅ ÄÌÑ ÓÔÒÏË
ÎÅÏÇÒÁÎÉÞÅÎÎÏÊ ÄÌÉÎÙ, Ó ÍÁËÓÉÍÁÌØÎÏ ÄÏÐÕÓÔÉÍÏÊ ÄÌÉÎÏÊ × 1 ÇÉÇÁÂÁÊÔ.
BYTEA ÄÌÑ ÈÒÁÎÅÎÉÑ ÂÉÎÁÒÎÙÈ ÄÁÎÎÙÈ, ÚÎÁÞÅÎÉÑ ËÏÔÏÒÙÈ
- ÍÏÇÕÔ ×ËÌÀÞÁÔØ NULL ÂÁÊÔÙ.
+ ÍÏÇÕÔ ×ËÌÀÞÁÔØ NULL ÂÁÊÔÙ. üÔÉ ÔÉÐÙ ÉÍÅÀÔ ÓÈÏÄÎÙÅ
+ ÈÁÒÁËÔÅÒÉÓÔÉËÉ ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔÉ.
serial/Ó-Á×ÔÏ-Õ×ÅÌÉÞÅÎÉÅÍ?
ïÄÉÎ ÉÚ ÓÐÏÓÏÂÏ× ÓÏÓÔÏÉÔ × ÐÏÌÕÞÅÎÉÉ ÓÌÅÄÕÀÝÅÇÏ ÚÎÁÞÅÎÉÑ
SERIAL ÉÚ ÏÂßÅËÔÁ sequence Ó ÐÏÍÏÝØÀ ÆÕÎËÃÉÉ
nextval() ÐÅÒÅÄ ×ÓÔÁ×ËÏÊ É ÚÁÔÅÍ ×ÓÔÁ×ÌÑÔØ ÜÔÏ ÚÎÁÞÅÎÉÅ
- Ñ×ÎÏ. éÓÐÏÌØÚÕÊÔÅ ÔÁÂÌÉÃÕ-ÐÒÉÍÅÒ ×
4.15.1,
ÞÔÏÂÙ
- Õ×ÉÄÅÔØ ËÁË ÜÔÏ ÄÅÌÁÅÔÓÑ × Perl:
+ Ñ×ÎÏ. éÓÐÏÌØÚÕÊÔÅ ÔÁÂÌÉÃÕ-ÐÒÉÍÅÒ ×
4.15.1,
ÐÒÉÍÅÒ
+ × ÐÓÅ×ÄÏÑÚÙËÅ ÐÏËÁÖÅÔ ËÁË ÜÔÏ ÄÅÌÁÅÔÓÑ:
- new_id = output of "SELECT nextval('person_id_seq')"
- INSERT INTO person (id, name) VALUES (new_id, 'Blaise Pascal');
+ new_id = execute("SELECT nextval('person_id_seq')");
+ execute("INSERT INTO person (id, name) VALUES (new_id, 'Blaise Pascal')");
úÁÔÅÍ ×Ù ÄÏÌÖÎÙ ÔÁËÖÅ ÓÏÈÒÁÎÉÔØ ÎÏ×ÏÅ ÚÎÁÞÅÎÉÅ × ÐÅÒÅÍÅÎÎÏÊ
ÉÍÅÎÁÍÉ ×ÁÛÅÊ ÔÁÂÌÉÃÙ É ×ÁÛÅÊ ËÏÌÏÎËÉ SERIAL.
÷ ËÁÞÅÓÔ×Å ÁÌØÔÅÒÎÁÔÉ×Ù, ×Ù ÍÏÖÅÔÅ ÐÏÌÕÞÉÔØ ÎÁÚÎÁÞÅÎÎÏÅ ÚÎÁÞÅÎÉÅ
- SERIAL Ó ÐÏÍÏÝØÀ ÆÕÎËÃÉÉ currval()
+ SERIAL Ó ÐÏÍÏÝØÀ ÆÕÎËÃÉÉ currval()
ÐÏÓÌÅ ÐÒÏ×ÅÄÅÎÉÑ ÏÂÙÞÎÏÊ ÏÐÅÒÁÃÉÉ ×ÓÔÁ×ËÉ, ÎÁÐÒÉÍÅÒ
- INSERT INTO person (name) VALUES ('Blaise Pascal');
- new_id = output of "SELECT currval('person_id_seq')";
+ execute("INSERT INTO person (name) VALUES ('Blaise Pascal')");
+ new_id = execute("SELECT currval('person_id_seq')");
é ÎÁËÏÎÅÃ, ×Ù ÍÏÖÅÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ ÚÎÁÞÅÎÉÅ
ÉÓÐÏÌØÚÏ×ÁÎÉÅ currval() É nextval() ÐÒÉ×ÅÄÅÔ Ë
ÚÁÃÉËÌÉÒÏ×ÁÎÉÀ Ó ÄÒÕÇÉÍÉ ÐÏÌØÚÏ×ÁÔÅÌÑÍÉ?
-
îÅÔ. Currval() ×ÏÚ×ÒÁÝÁÅÔ ÔÅËÕÝÅÅ ÚÎÁÞÅÎÉÅ, ÎÁÚÎÁÞÅÎÎÏÅ ×ÁÛÅÍ
+
îÅÔ. currval() ×ÏÚ×ÒÁÝÁÅÔ ÔÅËÕÝÅÅ ÚÎÁÞÅÎÉÅ, ÎÁÚÎÁÞÅÎÎÏÅ ×ÁÛÅÍ
backend'ÏÍ, Á ÎÅ ÄÒÕÇÉÍÉ ÐÏÌØÚÏ×ÁÔÅÌÑÍÉ.
4.15.4) ðÏÞÅÍÕ ÞÉÓÌÁ ÉÚ ÍÏÅÊ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÉ
× PostgreSQL. ëÁÖÄÁÑ ÚÁÐÉÓØ, ËÏÔÏÒÁÑ ÓÏÚÄÁ£ÔÓÑ × PostgreSQL ÐÏÌÕÞÁÅÔ
ÕÎÉËÁÌØÎÙÊ OID. ÷ÓÅ ÚÎÁÞÅÎÉÑ OID
ÇÅÎÅÒÉÒÕÅÍÙÅ ×Ï ×ÒÅÍÑ initdb ÉÍÅÀÔ ÚÎÁÞÅÎÉÑ ÍÅÎØÛÅ 16384 (ÉÚ
- backend/access/transam.h). ÷ÓÅ ÓÏÚÄÁÎÎÙÅ ÐÏÌØÚÏ×ÁÔÅÌÅÍ
+ include/access/transam.h). ÷ÓÅ ÓÏÚÄÁÎÎÙÅ ÐÏÌØÚÏ×ÁÔÅÌÅÍ
OID ÉÍÅÀÔ ÂïÌØÛÉÅ ÚÎÁÞÅÎÉÅ. ðÏ ÕÍÏÌÞÁÎÉÀ, ×ÓÅ ÜÔÉ
OID Ñ×ÌÑÀÔÓÑ ÕÎÉËÁÌØÎÙÍÉ ÎÅ ÔÏÌØËÏ ×ÎÕÔÒÉ ËÁËÏÊ-ÌÉÂÏ
ÔÁÂÌÉÃÙ ÉÌÉ ÂÁÚÙ ÄÁÎÎÙÈ, ÎÏ É ×ÎÕÔÒÉ ×ÓÅÊ óõâä PostgreSQL.
COPY new TO '/tmp/pgtable';
DELETE FROM new;
COPY new WITH OIDS FROM '/tmp/pgtable';
+
-
-
-
OID ÈÒÁÎÉÔÓÑ ËÁË 4-È ÂÁÊÔÎÏÅ ÃÅÌÏÅ É ÎÅ ÍÏÖÅÔ ÐÒÅ×ÙÛÁÔØ
+
OID ÈÒÁÎÉÔÓÑ ËÁË 4-È ÂÁÊÔÎÏÅ ÃÅÌÏÅ É ÎÅ ÍÏÖÅÔ ÐÒÅ×ÙÛÁÔØ
ÚÎÁÞÅÎÉÅ × 4 ÍÉÌÌÉÁÒÄÁ. ïÄÎÁËÏ, ÅÝÅ ÎÉËÔÏ ÎÅ ÓÏÏÂÝÉÌ Ï ÔÏÍ, ÞÔÏ ÔÁËÏÅ
ÐÒÏÉÚÏÛÌÏ, ÎÏ ÍÙ ÐÌÁÎÉÒÕÅÍ ÄÏ ÔÏÇÏ ËÁË ÜÔÏ ÓÌÕÞÉÔØÓÑ ÉÚÂÁ×ÉÔÓÑ ÏÔ
ÜÔÏÇÏ ÏÇÒÁÎÉÞÅÎÉÑ.
range variable, table name, table alias