Variabel dalam psql
mengisap. Jika Anda ingin mendeklarasikan bilangan bulat, Anda harus memasukkan bilangan bulat, lalu lakukan carriage return, lalu akhiri pernyataan dalam tanda titik koma. Mengamati:
Katakanlah saya ingin mendeklarasikan variabel integer my_var
dan memasukkannya ke dalam tabel test
:
Tabel contoh 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)
Jelas, belum ada di tabel ini:
thedatabase=# select * from test;
id
----
(0 rows)
Kami mendeklarasikan variabel. Perhatikan bagaimana titik koma ada di baris berikutnya!
thedatabase=# \set my_var 999
thedatabase=# ;
Sekarang kita bisa memasukkan. Kita harus menggunakan :''
sintaks yang terlihat aneh ini :
thedatabase=# insert into test(id) values (:'my_var');
INSERT 0 1
Berhasil!
thedatabase=# select * from test;
id
-----
999
(1 row)
Penjelasan:
Jadi ... apa yang terjadi jika kita tidak memiliki titik koma di baris berikutnya? Variabelnya? Lihat:
Kami menyatakan my_var
tanpa garis baru.
thedatabase=# \set my_var 999;
Ayo pilih my_var
.
thedatabase=# select :'my_var';
?column?
----------
999;
(1 row)
WTF apakah itu? Ini bukan bilangan bulat , ini sebuah string 999;
!
thedatabase=# select 999;
?column?
----------
999
(1 row)