[Pljava-dev] Problem with primary key
Eric BOYER
Eric.Boyer at insa-toulouse.fr
Tue May 16 14:54:56 UTC 2006
Hello,
I have a problem with primary key !
I have a simple table like :
Table "public.test"
Column | Type | Modifiers
--------+------+-----------
lib | text | not null
Indexes:
"test_pkey" PRIMARY KEY, btree (lib)
I have a fonction :
List of functions
Schema | Name | Result data type | Argument data types
--------+-----------------+------------------+---------------------
public | allominitrigger | "trigger" |
(1 row)
My code for this fonction is :
public static void traiter(TriggerData td) {
try {
Connection conn =
DriverManager.getConnection("jdbc:default:connection");
Statement stmt = conn.createStatement();
stmt.execute("insert into test (lib) values('monlib')");
}
catch (Exception e) {
e.printStackTrace();
}
}
I have the trigger :
trigtest AFTER INSERT ON test FOR EACH ROW EXECUTE PROCEDURE
allominitrigger()
---------
My test is :
I want insert a row and in my fonction, i wan't to insert the same row
to test the primary key control
I insert :
insert into test values('monlib');
And I have :
WARNING: buffer refcount leak: [003] (rel=1663/16922/164335,
blockNum=1, flags=0x27, refcount=1 1)
WARNING: relcache reference leak: relation "pk_test" not closed
WARNING: relcache reference leak: relation "test" not closed
WARNING: transaction left non-empty SPI stack
HINT: Check for missing "SPI_finish" calls.
And When I select values :
SELECT * from test;
lib
--------
monlib
monlib
(2 rows)
My primary key is duplicate !
Is it normal ?
Of course, if in my catch I have :
catch (Exception e) {
e.printStackTrace();
throw e;
}
All is OK, postgres doesn't duplicate the primary key !
Thanks for your point of vue !
eric.
More information about the Pljava-dev
mailing list