Değişkenler psql
. Bir tamsayı bildirmek istiyorsanız, tamsayı girmeniz, ardından bir satırbaşı yapmanız ve ardından ifadeyi noktalı virgülle sonlandırmanız gerekir. Gözlemek:
Diyelim ki bir tamsayı değişkeni my_var
tanımlayıp bir tabloya eklemek istiyorum test
:
Örnek tablo 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)
Açıkça, bu tabloda henüz hiçbir şey yok:
thedatabase=# select * from test;
id
----
(0 rows)
Bir değişken tanımlıyoruz. Bir sonraki satırda noktalı virgülün nasıl olduğuna dikkat edin!
thedatabase=# \set my_var 999
thedatabase=# ;
Şimdi ekleyebiliriz. Bu tuhaf :''
görünümlü sözdizimini " " kullanmalıyız :
thedatabase=# insert into test(id) values (:'my_var');
INSERT 0 1
İşe yaradı!
thedatabase=# select * from test;
id
-----
999
(1 row)
Açıklama:
Öyleyse ... sonraki satırda noktalı virgül yoksa ne olur? Değişken? Bir göz atın:
my_var
Yeni hat olmadan beyan ederiz .
thedatabase=# \set my_var 999;
Seçelim my_var
.
thedatabase=# select :'my_var';
?column?
----------
999;
(1 row)
Bu ne lan? Tamsayı değil , dizge 999;
!
thedatabase=# select 999;
?column?
----------
999
(1 row)