Biến trong psql
mút. Nếu bạn muốn khai báo một số nguyên, bạn phải nhập số nguyên, sau đó thực hiện trả về vận chuyển, sau đó kết thúc câu lệnh bằng dấu chấm phẩy. Quan sát:
Giả sử tôi muốn khai báo một biến số nguyên my_var
và chèn nó vào một bảng test
:
Bảng ví dụ 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)
Rõ ràng, không có gì trong bảng này:
thedatabase=# select * from test;
id
----
(0 rows)
Chúng tôi khai báo một biến. Lưu ý cách dấu chấm phẩy trên dòng tiếp theo!
thedatabase=# \set my_var 999
thedatabase=# ;
Bây giờ chúng ta có thể chèn. Chúng ta phải sử dụng :''
cú pháp tìm kiếm " " kỳ lạ này :
thedatabase=# insert into test(id) values (:'my_var');
INSERT 0 1
Nó đã làm việc!
thedatabase=# select * from test;
id
-----
999
(1 row)
Giải trình:
Vậy ... chuyện gì xảy ra nếu chúng ta không có dấu chấm phẩy trên dòng tiếp theo? Các biến? Có một cái nhìn:
Chúng tôi tuyên bố my_var
mà không có dòng mới.
thedatabase=# \set my_var 999;
Hãy chọn my_var
.
thedatabase=# select :'my_var';
?column?
----------
999;
(1 row)
WTF là gì? Nó không phải là số nguyên , nó là một chuỗi 999;
!
thedatabase=# select 999;
?column?
----------
999
(1 row)