diff --git a/apps/desktop/src/components/structure/TableStructureEditor.vue b/apps/desktop/src/components/structure/TableStructureEditor.vue index b2101cf4fd..9159e9418c 100644 --- a/apps/desktop/src/components/structure/TableStructureEditor.vue +++ b/apps/desktop/src/components/structure/TableStructureEditor.vue @@ -1153,6 +1153,18 @@ function setMysqlAutoIncrement(column: EditableStructureColumn, checked: boolean void loadMysqlAutoIncrementCounter(true); } } +function isSqliteAutoIncrement(column: EditableStructureColumn): boolean { + return structureDialect.value === "sqlite" && column.isPrimaryKey && isSqliteIntegerType(column.dataType) && column.extra.autoIncrement === true; +} +function canEditSqliteAutoIncrement(column: EditableStructureColumn): boolean { + return structureDialect.value === "sqlite" && column.isPrimaryKey && isSqliteIntegerType(column.dataType) && !columns.value.some((candidate) => candidate !== column && candidate.isPrimaryKey && candidate.extra.autoIncrement); +} +function setSqliteAutoIncrement(column: EditableStructureColumn, checked: boolean) { + column.extra.autoIncrement = checked; +} +function isSqliteIntegerType(dataType: string): boolean { + return /^(integer|int|tinyint|smallint|mediumint|bigint)$/i.test(dataType.trim().split("(")[0]); +} function onMysqlAutoIncrementInput(event: Event) { const input = event.target as HTMLInputElement; if (/^\d*$/.test(input.value)) { @@ -4698,6 +4710,12 @@ watch( +