HSQLDB
Published 16 November 2022
HSQLDB
Supported Versions
2.4
2.3
Flyway Teams2.2
Flyway Teams2.0
Flyway Teams1.8
Flyway Teams
Support Level
Compatible | ✓ |
---|---|
Certified | ✓ |
Guaranteed | ✓ Flyway Teams |
Support Level determines the degree of support available for this database (learn more).
Driver
URL format | jdbc:hsqldb:file:file |
---|---|
Ships with Flyway Command-line | Yes |
Maven Central coordinates | org.hsqldb:hsqldb |
Supported versions | 1.8 and later |
Default Java class | org.hsqldb.jdbcDriver |
SQL Script Syntax
- Standard SQL syntax with statement delimiter ;
- Triggers with
BEGIN ATOMIC ... END;
block
Compatibility
- DDL exported by HSQLDB can be used unchanged in a Flyway migration
- Any HSQLDB SQL script executed by Flyway, can be executed by the Hsql tools (after the placeholders have been replaced)
Example
/* Single line comment */
CREATE TABLE test_data (
value VARCHAR(25) NOT NULL PRIMARY KEY
);
/*
Multi-line
comment
*/
-- Sql-style comment
-- Placeholder
INSERT INTO ${tableName} (name) VALUES ('Mr. T');
CREATE TRIGGER uniqueidx_trigger BEFORE INSERT ON usertable
REFERENCING NEW ROW AS newrow
FOR EACH ROW WHEN (newrow.name is not null)
BEGIN ATOMIC
IF EXISTS (SELECT * FROM usertable WHERE usertable.name = newrow.name) THEN
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'duplicate name';
END IF;
END;
Limitations
- No concurrent migration support (to make Flyway cluster-safe) with HSQLDB 1.8, as this version does not properly support
SELECT ... FOR UPDATE
locking