日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

MySQL uuid()函数生成的UUID的长度问题

發布時間:2023/12/13 综合教程 30 生活家
生活随笔 收集整理的這篇文章主要介紹了 MySQL uuid()函数生成的UUID的长度问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

MySQL uuid()函數生成的UUID的長度問題


錯誤重新

有一user表,表結構信息如下:

現在嘗試執行以下SQL語句,向user表插入一條數據:

INSERT INTO `user` VALUES ( UUID(),"肖zy",22 )

上述SQL語句執行時產生以下錯誤信息:

INSERT INTO `user` VALUES ( UUID(),"肖zy",22 )
> 1406 - Data too long for column 'id' at row 1
> 時間: 0s

錯誤分析

從錯誤信息看,我們插入id字段的數據太長了。user表中id字段的最大長度被設置為32,也就是說UUID()函數返回的UUID的長度超過32。

下面是官方文檔中關于UUID()函數的一段說明:

UUID() returns a value that conforms to UUID version 1 as described in RFC 4122. The value is a 128-bit number represented as a utf8 string of five hexadecimal numbers in aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee format:

從官方文檔可以看出,UUID()函數返回的UUID的長度為36

錯誤解決

修改user表中id字段的限定長度
修改UUID()函數的返回值

使用REPLACE()函數,把UUID()函數返回值中的 “-”符號替換掉:

REPLACE( UUID(),"-","")

這樣可以將UUID()函數產生的UUID的長度縮短到32,且UUID的唯一性并不會被破壞。


官方文檔:https://dev.mysql.com/doc/refman/8.0/en/miscellaneous-functions.html

總結

以上是生活随笔為你收集整理的MySQL uuid()函数生成的UUID的长度问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。