# `Fun_GetBarId` (function) > 生成27位纯数字的ID 模仿后台Java代码生成 - **Type:** FUNCTION - **Returns:** `varchar(32)` - **Deterministic:** NO - **SQL data access:** CONTAINS SQL ## Parameters | # | Mode | Name | Type | |---|---|---|---| | 1 | IN | `iIndex` | `int` | ## Body _Body is not pre-cached. To inspect: `mysql --defaults-file=~/.my.cnf -e 'SHOW CREATE FUNCTION `Fun_GetBarId`'`._ ## Narrative **Business context:** Numeric ID generator — header comment `生成27位纯数字的ID 模仿后台Java代码生成` ("27-digit numeric ID, mimics the Java backend"). The xly Java code mints all-numeric IDs by stitching together a timestamp and a counter; this is the SQL equivalent for procs that need to allocate IDs without a round-trip. **What it does:** returns `DATE_FORMAT(NOW(),'%y%m%d%H%i%s')` (12 digits, yyMMddHHmmss) concatenated with `LPAD(iIndex,2,'0')`. Final length is 14 — not 27 as the comment claims. Caller is expected to supply a monotonically increasing `iIndex` per second to avoid collisions. **Invocation:** Status: appears orphaned. No caller found in any channel (form-master sSqlStr, gdsmodule hooks, other routines, exhaustive xly-src grep, dynamic-dispatch search) — candidate for maintainer audit. Production ID minting happens Java-side via `IdWorker`/`SnowflakeId`, leaving this as a stale convenience.