[PHP-users 629] PHP 経由の SQL INSERT エラーについて
php-users@php.gr.jp
php-users@php.gr.jp
8 Jul 2001 20:09:01 +0900
初めまして。上垣と申します。
RedHat Linux 7.1上にてApache1.3.18+php-3.0.18-i18n-ja-2と
PostgreSQL 7.1で開発をしております。
serial(sequence)とuniqueのデータ型を持つテーブルを作成し、
PHP経由でinsertを行いますと、PHPエラーが出ます。
以下のテーブルを作成し、
CREATE TABLE tb_testA(
test_id SERIAL,
test_text TEXT UNIQUE NOT NULL
);
WWW(PHP3)経由で以下のようなスクリプトを実行しました。
<?
$conn = pg_connect("","","test");
$rs = pg_exec($conn, "INSERT INTO tb_testA(test_text) VALUES('t1')");
print $rs;
?>
その結果、
Warning: PostgresSQL query failed: ERROR: Cannot insert a
duplicate key into unique index tb_testA_test_pkey in
test.php3 on line 3
というエラーが出ました。
テーブルを確認しましたところ、データは収められていました。
test=# SELECT * FROM tb_testA;
test_id | test_text
---------+-----------
1 | t1
(1 rows)
コマンドラインからINSERTを行いますと、エラーは出ません。
また、SERIALのみの以下のようなテーブルを作成し、
CREATE TABLE tb_testB(
test_id SERIAL,
test_text TEXT NOT NULL
);
WWW(PHP3)経由で
INSERT INTO tb_testB(test_text) VALUES('t1')
を行いますと、エラーは出ません。
しかし、同一テーブル上にてUNIQUEとSEQUENCEを使いたいのです。
この解決について知恵をお貸しいただけませんでしょうか?
どうぞよろしくお願いいたします。
-- abundantia@mail.goo.ne.jp