Variablen in psql
saugen. Wenn Sie eine Ganzzahl deklarieren möchten, müssen Sie die Ganzzahl eingeben, einen Wagenrücklauf durchführen und die Anweisung in einem Semikolon beenden. Beobachten:
Angenommen, ich möchte eine Ganzzahlvariable deklarieren my_var
und in eine Tabelle einfügen test
:
Beispieltabelle test
:
thedatabase=# \d test;
Table "public.test"
Column | Type | Modifiers
--------+---------+---------------------------------------------------
id | integer | not null default nextval('test_id_seq'::regclass)
Indexes:
"test_pkey" PRIMARY KEY, btree (id)
Klar, noch nichts in dieser Tabelle:
thedatabase=# select * from test;
id
----
(0 rows)
Wir deklarieren eine Variable. Beachten Sie, wie das Semikolon in der nächsten Zeile steht!
thedatabase=# \set my_var 999
thedatabase=# ;
Jetzt können wir einfügen. Wir müssen diese seltsam :''
aussehende Syntax verwenden:
thedatabase=# insert into test(id) values (:'my_var');
INSERT 0 1
Es funktionierte!
thedatabase=# select * from test;
id
-----
999
(1 row)
Erläuterung:
Also ... was passiert, wenn wir das Semikolon in der nächsten Zeile nicht haben? Die Variable? Guck mal:
Wir erklären my_var
ohne die neue Zeile.
thedatabase=# \set my_var 999;
Lassen Sie uns auswählen my_var
.
thedatabase=# select :'my_var';
?column?
----------
999;
(1 row)
Was zum Teufel ist das? Es ist keine ganze Zahl , es ist eine Zeichenfolge 999;
!
thedatabase=# select 999;
?column?
----------
999
(1 row)