This morning I tried to open my test database to make some tests there and
I couldn't open it anymore; even tried the recover tool. When I try to open
it using the h2 console I am getting this exception:
Unique index or primary key violation: "PRIMARY KEY ON """".PAGE_INDEX";
SQL statement:
ALTER TABLE ADDRESS_SPACE.TABLE_A ADD CONSTRAINT
ADDRESS_SPACE.FK_VAR_OBJECT FOREIGN KEY(OBJECT_ID) REFERENCES
ADDRESS_SPACE.OBJECT_NODE(OBJECT_ID) ON DELETE CASCADE ON UPDATE CASCADE
NOCHECK [23505-176]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:344)
at org.h2.message.DbException.get(DbException.java:178)
at org.h2.message.DbException.get(DbException.java:154)
at
org.h2.index.PageDataIndex.getNewDuplicateKeyException(PageDataIndex.java:166)
at org.h2.index.PageDataIndex.add(PageDataIndex.java:144)
at org.h2.store.PageStore.addMeta(PageStore.java:1808)
at org.h2.index.PageBtreeIndex.<init>(PageBtreeIndex.java:64)
at org.h2.table.RegularTable.addIndex(RegularTable.java:235)
at
org.h2.command.ddl.AlterTableAddConstraint.createIndex(AlterTableAddConstraint.java:280)
at
org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:205)
at
org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:73)
at org.h2.engine.MetaRecord.execute(MetaRecord.java:59)
at org.h2.engine.Database.open(Database.java:719)
at org.h2.engine.Database.openDatabase(Database.java:260)
at org.h2.engine.Database.<init>(Database.java:254)
at org.h2.engine.Engine.openSession(Engine.java:57)
at org.h2.engine.Engine.openSession(Engine.java:164)
at org.h2.engine.Engine.createSessionAndValidate(Engine.java:142)
at org.h2.engine.Engine.createSession(Engine.java:125)
at org.h2.engine.Engine.createSession(Engine.java:27)
at
org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:331)
at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:107)
at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:91)
at org.h2.Driver.connect(Driver.java:74)
at org.h2.server.web.WebServer.getConnection(WebServer.java:684)
at org.h2.server.web.WebApp.login(WebApp.java:958)
at org.h2.server.web.WebApp.process(WebApp.java:212)
at org.h2.server.web.WebApp.processRequest(WebApp.java:171)
at org.h2.server.web.WebThread.process(WebThread.java:138)
at org.h2.server.web.WebThread.run(WebThread.java:94)
Yesterday the last thing I did was executing some queries with CASE that I
have ported from mysql:
UPDATE MODBUS_INDEX_MAP SET
VALUE = CASE
WHEN INDEXO = 2 THEN 99
ELSE VALUE
END,
FLAG = CASE
WHEN INDEXO<>2 AND (SELECT FLAG FROM ( SELECT FLAG FROM
MODBUS_INDEX_MAP WHERE INDEXO = 2) AS PIP)=1 THEN 0
WHEN INDEXO = 2 THEN 1
ELSE FLAG
END
WHERE SOURCEID IN (SELECT SOURCEID FROM ( SELECT SOURCEID FROM
MODBUS_INDEX_MAP WHERE INDEXO = 2) AS PEPE)
AND (ACK = (SELECT ACK FROM ( SELECT ACK FROM MODBUS_INDEX_MAP WHERE INDEXO
= 2) AS PIPO)
OR (ACK IS NULL AND ((SELECT ACK FROM ( SELECT ACK FROM UA_MODBUS_INDEX_MAP
WHERE INDEXO = 2) AS PIPO2) IS NULL)))
AND (EFB = (SELECT EFB FROM ( SELECT EFB FROM MODBUS_INDEX_MAP WHERE INDEXO
= 2) AS PIPO3)
OR (EFB IS NULL AND ((SELECT EFB FROM ( SELECT EFB FROM MODBUS_INDEX_MAP
WHERE INDEXO = 2) AS PIPO4) IS NULL)));
I am stuck trying to open it... Any ideas?
It looks like if the primary key is violated the db cannot be opened
anymore?
Tks,
Dani.
--
You received this message because you are subscribed to the Google Groups "H2
Database" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/h2-database.
For more options, visit https://groups.google.com/d/optout.