uuid_short替换

【 TiDB 使用环境】测试

【 TiDB 版本】6.1.0

【遇到的问题】 MySQL中uuid_short函数,在TiDB中可以用什么方案函数等进行替换

貌似还没有 https://docs.pingcap.com/zh/tidb/stable/miscellaneous-functions

可以参考源码搞一个~

ulonglong uuid_value;

void uuid_short_init()

{

uuid_value= ((((ulonglong) server_id) << 56) + (((ulonglong) server_start_time) << 24));

}

longlong Item_func_uuid_short::val_int()

{

ulonglong val;

mysql_mutex_lock(&LOCK_uuid_generator);

val= uuid_value++;

mysql_mutex_unlock(&LOCK_uuid_generator);

return (longlong) val;

}

TiDB里不支持这个函数,可以试下这个:

mysql> begin; select @@tidb_current_ts; rollback;
Query OK, 0 rows affected (0.001 sec)

+--------------------+
| @@tidb_current_ts  |
+--------------------+
| 434832859614150657 |
+--------------------+
1 row in set (0.001 sec)

1 个赞

搞个时间戳什么的应该也差不多

这都要加rollback么?严谨!

该主题在最后一个回复创建后60天后自动关闭。不再允许新的回复。