[PHP-dev 51] PostgreSQL+PHPでINSERTに失敗
Network21
php-dev@php.gr.jp
Thu, 13 Sep 2001 12:28:56 +0900
はじめまして、以前PHP-jpの時にもお世話になっていたUNAと申します。
PHPを用いてシステム開発なんかをやっております。
さて、早速質問なのですが、単純にデータベースに項目を追加したいの
ですが、作成したテーブル
create table email_log(
m_id int4 not null primary key,
m_date timestamp not null default now(),
from_addr text not null,
to_addr text not null,
subject_id int4 not null default 0,
ref_id int4 not null default 0,
m_subject text not null,
m_body text not null,
);
において、m_idのmaxを取り出し、+1してPHPからINSERT文
INSERT INTO email_log (m_id,from_addr,to_addr,subject_id,m_subject,m_body)
VALUES(3,'test@test.com','test@goo.com',6,'てすと','てすと ')
を実行すると、
Cannot insert a duplicate key into unique index email_log_pkey
となり追加できません。しかし、同じ文をpsqlから実行すると何の問題もなく
追加できます。(当然2回同じ文を実行すれば2度目はキーがぶつかるので
失敗しますが。)
psqlで実行したときも、PHPと同じnobodyユーザでログインしているので、
違いはないと思うのですが、これはなぜでしょうか???
ただ一点違うとすれば、PHP側ではこの文をpg_exec("BEGIN")としたあとに
記述しており、トランザクションの中に入っているということです。
ご存知の方いらっしゃいましたらご教授願います。
--------------------------------
RedHat6.2J
PHP4.0.6+Apache1.3.17
PostgreSQL7.1
--------------------------------
-------------------
UNA@Chiba-univ
network21@bd.wakwak.com