Re: Problem with UNIQUE constraint on two columns
Fred Toussi <[email protected]> Sun, 24 May 2015 19:17:46 +0100
| Newsgroups | gmane.comp.java.hsqldb.user |
|---|---|
| Message-ID | <1432491466.2143334.276982145.4496FC82@webmail.messagingengine.com> |
You have a primary key on the user_id column of the user_public_keys table. Therefore you cannot insert more than one row containing 'u0'. I think your intention is to have multiple user_public_key rows per user. In this case, remove the PRIMARY KEY constraint from this table. Fred On Sun, May 24, 2015, at 15:25, [email protected] wrote: > Hello. > > I'm having a strange problem with a UNIQUE constraint on this set > of tables. > > CREATE TABLE keys_public ( > key_row INTEGER GENERATED ALWAYS AS IDENTITY NOT NULL PRIMARY > KEY, > key_id VARCHAR(4) NOT NULL, > key_fingerprint VARCHAR(4) NOT NULL, > key_data VARCHAR(4) NOT NULL > ); > > CREATE TABLE user_ids ( > user_id VARCHAR(4) NOT NULL PRIMARY KEY > ); > > CREATE TABLE user_public_keys ( > user_id VARCHAR(4) NOT NULL PRIMARY KEY, > key_row INTEGER NOT NULL, > > UNIQUE (user_id, key_row), > FOREIGN KEY (user_id) REFERENCES user_ids (user_id), > FOREIGN KEY (key_row) REFERENCES keys_public (key_row) > ); > > INSERT INTO keys_public VALUES (DEFAULT, 'kid0', 'kfp0', ''); > INSERT INTO user_ids VALUES ('u0'); > INSERT INTO user_public_keys VALUES ('u0', 0); > > SELECT * FROM keys_public; > SELECT * FROM user_ids; > SELECT * FROM user_public_keys; > > At this point, everything is fine. However... > > INSERT INTO keys_public VALUES (DEFAULT, 'kid1', 'kfp1', ''); > SELECT * FROM keys_public; > INSERT INTO user_public_keys VALUES ('u0', 1); > -- integrity constraint violation: unique constraint or index violation; > SYS_PK_10124 table: USER_PUBLIC_KEYS > > The keys_public table does contain a key_row with value 1. The > user_public_keys table contains one row ('u0', 0). There is no foreign > key or unique constraint violation that I can see. What's going > on here? > > > > ------------------------------------------------------------------------------ > One dashboard for servers and applications across Physical-Virtual-Cloud > Widest out-of-the-box monitoring support with 50+ applications > Performance metrics, stats and reports that give you Actionable Insights > Deep dive visibility with transaction tracing using APM Insight. > http://ad.doubleclick.net/ddm/clk/290420510;117567292;y > _______________________________________________ > Hsqldb-user mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/hsqldb-user ------------------------------------------------------------------------------ One dashboard for servers and applications across Physical-Virtual-Cloud Widest out-of-the-box monitoring support with 50+ applications Performance metrics, stats and reports that give you Actionable Insights Deep dive visibility with transaction tracing using APM Insight. http://ad.doubleclick.net/ddm/clk/290420510;117567292;y