psql
サックの変数。整数を宣言する場合は、整数を入力してから改行し、ステートメントをセミコロンで終了する必要があります。観察する:
整数変数を宣言my_var
してテーブルに挿入するとしますtest
。
テーブルの例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)
明らかに、この表にはまだ何もありません。
thedatabase=# select * from test;
id
----
(0 rows)
変数を宣言します。セミコロンが次の行にあることに注意してください!
thedatabase=# \set my_var 999
thedatabase=# ;
これで挿入できます。この奇妙な " :''
"構文を使用する必要があります。
thedatabase=# insert into test(id) values (:'my_var');
INSERT 0 1
出来た!
thedatabase=# select * from test;
id
-----
999
(1 row)
説明:
では、次の行にセミコロンがないとどうなりますか?変数?見てください:
my_var
改行なしで宣言します。
thedatabase=# \set my_var 999;
選択してみましょうmy_var
。
thedatabase=# select :'my_var';
?column?
----------
999;
(1 row)
あれは何だよ?それは整数ではなく、文字列 999;
です!
thedatabase=# select 999;
?column?
----------
999
(1 row)