В HSQLDB у меня есть две TEXT
таблицы, сопоставленные с файлами CSV.См. Проект CSV Cruncher .
CREATE TEXT TABLE session_telephony_pins ( Op VARCHAR(4092), id ... )
Я пытаюсь добавить столбец в эту «входную» таблицу, чтобы у результата был уникальный идентификатор для каждой таблицы.
Так что это кажется вполне логичным: добавьте этот столбец, определенный как последовательность,
CREATE TEXT TABLE output ( crunchCounter BIGINT
GENERATED BY DEFAULT AS SEQUENCE crunchCounter PRIMARY KEY, op VARCHAR(4092), ... )
и затем используйте null, чтобы позволить БД выбрать значение:
INSERT INTO output (SELECT NULL AS crunchCounter, * FROM apollo_session_occurrence)
-- I also tried withhout `AS ...`
Однако еслине работает с:
SQLSyntaxErrorException duplicate column name in derived table
Таблицы и типы столбцов:
* APOLLO_SESSION_OCCURRENCE
- OP CHARACTER VARYING
- SESSION_OCCURRENCE_ID SMALLINT
- SESSION_ID SMALLINT
- START_TIME TIMESTAMP
- END_TIME TIMESTAMP
- UID UUID
* OUTPUT
- CRUNCHCOUNTER BIGINT
- OP CHARACTER VARYING
- SESSION_OCCURRENCE_ID CHARACTER VARYING
- SESSION_ID CHARACTER VARYING
- START_TIME CHARACTER VARYING
- END_TIME CHARACTER VARYING
- UID CHARACTER VARYING
Я думаю, что в MySQL это будет работать, но не проверял.
Типы не должныбыть проблемой.Если я опущу столбец crunchCounter
и просто сделаю INSERT INTO output (SELECT * FROM apollo_session_occurrence)
, он будет работать нормально.
Теоретически я могу использовать NEXT VALUE FOR crunchCounter
, но это не изменит метаданные столбцов.Это происходит, когда HSQLDB проверяет метаданные.
Что происходит?И,
Как мне заполнить таблицу output
уникальным столбцом?
Редактировать: Интересно, что он хорошо работает с другими таблицами и специально именованными столбцами результатов:
INSERT INTO output (SELECT NULL AS crunchCounter, jobName, buildNumber, config, ar, arFile, deployDur, warmupDur, scale,
CAST(warmupDur AS DOUBLE) / CAST(deployDur AS DOUBLE) AS warmupSlower
FROM concat ORDER BY deployDur)
* CONCAT
- JOBNAME CHARACTER VARYING
- BUILDNUMBER SMALLINT
- CONFIG CHARACTER VARYING
- AR CHARACTER VARYING
- ARFILE CHARACTER VARYING
- DEPLOYDUR SMALLINT
- WARMUPDUR SMALLINT
- SCALE SMALLINT
* OUTPUT
- CRUNCHCOUNTER BIGINT
- JOBNAME CHARACTER VARYING
- BUILDNUMBER CHARACTER VARYING
- CONFIG CHARACTER VARYING
- AR CHARACTER VARYING
- ARFILE CHARACTER VARYING
- DEPLOYDUR CHARACTER VARYING
- WARMUPDUR CHARACTER VARYING
- SCALE CHARACTER VARYING
- WARMUPSLOWER CHARACTER VARYING
Начинает выглядеть как ошибка HSQLDB.