[pgsql-jp: 25823] Re: updateが上手く行かない

Shindo@AtSystem shindo @ atsystem.jp
2002年 5月 5日 (日) 17:21:39 JST


(有)アットシステムの進藤です。
お世話になっております。


--- snip --- Cyoki Cyoki ---
>> $msg か $no に数値以外が入っていませんか。
>> ためしに、psql で
>> shindo=# update kifu set msg='234' where msgno='a1';
>> ERROR:  pg_atoi: error in "a1": can't parse "a1"
>> shindo=# update kifu set msg='a34' where msgno='1';
>> ERROR:  oidin: error in "a34": can't parse "a34"
>> とやってみるとエラーが出ます。
>
>レス有り難う御座います
>どうも基本的な間違いをしていたようですね。
>updateは数値しか使えないとは思っていませんでした。
違います。
http://osb.sra.co.jp/PostgreSQL/Manual/PostgreSQL-7.1-ja/datatype.html
が参考になると思いますが

>create table kifu (
>    msgno serial,
>    msgtime timestamp,
>    yourname varchar(50),
>    mailadrs varchar(200),
>    title varchar(200),
>    msg oid);
OID型、serial型が数値型なので数値しか代入できないということです。

>
>間違って書き込まれた文字列の書き換えはどの様にするのでしょうか?。
>レコードを消して新たに書くしか方法は無いのでしょうか?
create table kifu (
    msgno serial,
    msgtime timestamp,
    yourname varchar(50),
    mailadrs varchar(200),
    title varchar(200),
    msg text);
例えば、上記の様に定義されれば文字列で問題ありません。
# update kifu set msg='a34' where msgno='1';
を実行してエラーは発生しません。


」」」」」」」」」」」」」」」」
」
」  進藤寿則@アットシステム
」  shindo @ atsystem.jpshindo @ sasoh.ne.jp


pgsql-jp メーリングリストの案内