自增字段怎么设置初始值?例如1001,1002这种
1.首先将字段设置为自增,并且给自增的字段设置默认值,如下图

2.修改模板,使其支持设置自增的默认值,如下图


具体完整的模板如下:
{{
let schemaName = it.schemaName ? `${it.schemaName}.` : '';
const tableKey = `${schemaName}${it.defKey}`;
let autoIncrementDefaultValue = "";
function getDataType(field) {
const { dbDataType } = field;
if(!dbDataType) {
return '';
}
const dataType = dbDataType.toUpperCase();
if (['VARCHAR','NVARCHAR','VARBINARY'].includes(dataType)) {
return `${dataType}(${field.dataLen ? field.dataLen : 128})`;
} else if (['DATE','YEAR','TINYTEXT','MEDIUMTEXT','LONGTEXT','TINYBLOB','MEDIUMBLOB','LONGBLOB','BOOLEAN','FLOAT','JSON'].includes(dataType)) {
return dataType;
} else if(['SET','ENUM'].includes(dataType)){
return `${dataType}(${field.defaultValue})`;
} else if (dataType === 'TIMESTAMP') {
return field.dataLen && field.dataLen >= 0 && field.dataLen <= 6 ? `${dataType}(${field.dataLen})` : dataType;
} else if (dataType === 'DOUBLE') {
return field.dataLen && field.dataLen >= 0 && field.dataLen <= 255 ? (field.numScale && field.numScale >= 0 && field.numScale <= field.dataLen ? `${dataType}(${field.dataLen},${field.numScale})` : `${dataType}(${field.dataLen},0)`) : `${dataType}`;
} else if (dataType === 'DECIMAL') {
return field.dataLen && field.dataLen >= 0 && field.dataLen <= 65 ? (field.numScale && field.numScale >= 0 && field.numScale <= field.dataLen ? `${dataType}(${field.dataLen},${field.numScale})` : `${dataType}(${field.dataLen})`) : `${dataType}`;
} else {
return field.dataLen && field.dataLen >= 0 ? `${dataType}(${field.dataLen})` : `${dataType}`;
}
}
function getFieldDefinition(field, index, fields) {
const dataType = getDataType(field);
const notNull = field.notNull ? ' NOT NULL' : '';
const autoIncrement = field.autoIncrement ? ' AUTO_INCREMENT' : '';
let defaultValue = field.defaultValue ? ` DEFAULT ${field.defaultValue}` : '';
if(field?.dbDataType?.toUpperCase() === 'SET' || field?.dbDataType?.toUpperCase() ==='ENUM'){
defaultValue = field.defaultValue ? ` DEFAULT ("${field.defaultValue}")` : '';
} else if(autoIncrement) {
autoIncrementDefaultValue = `AUTO_INCREMENT = ${field.defaultValue}`;
defaultValue = "";
}
const comment = ` COMMENT '${it.func.strJoin(field.defName, field.intro, ";", true)}'`;
return `${dataType}${notNull}${autoIncrement}${defaultValue}${comment}${index < fields.length - 1 || pkList.length > 0 ? ',' : ''}`;
}
}}
DROP TABLE IF EXISTS {{= tableKey }};
CREATE TABLE {{= tableKey }}(
{{ pkList = [] ; }}
{{~it.fields:field:index}}
{{? field.primaryKey }}{{ pkList.push(field.defKey) }}{{?}}
`{{=field.defKey}}` {{= getFieldDefinition(field, index, it.fields) }}
{{~}}
{{? pkList.length > 0 }}
PRIMARY KEY ({{~pkList:pkName:i}}`{{= pkName }}`{{= i < pkList.length - 1 ? ',' : '' }}{{~}})
{{?}}
){{? (it.intro && it.intro !== '') || (it.defName && it.defName !== '') }} COMMENT '{{=it.func.strJoin(it.defName, it.intro, ";", true)}}' {{=autoIncrementDefaultValue}}{{?}};
$blankline