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)