mysql中插入隨機字符串?dāng)?shù)據(jù)及常見問題說明
插入隨機字符串?dāng)?shù)據(jù)可用于大量數(shù)據(jù)的測試。
一、數(shù)據(jù)表
已知表stringcontent,其中包含字段:
id要求自增長
content varchar(30)
二、實現(xiàn)步驟
1.按要求創(chuàng)建表
DROP TABLE IF EXISTS stringcontent;#防止該表已經(jīng)存在 CREATE TABLE stringcontent( id INT PRIMARY KEY AUTO_INCREMENT, content VARCHAR(30) );
2.創(chuàng)建存儲過程
DROP PROCEDURE IF EXISTS myfinal; DELIMITER $ CREATE PROCEDURE myfinal(IN num INT) BEGIN DECLARE i INT DEFAULT 1;#定義一個循環(huán)變量i,表示插入次數(shù) DECLARE str VARCHAR(26) DEFAULT 'abcdefghijklmnopqrstuvwxyz'; DECLARE startIndex INT DEFAULT 1;#代表起始索引 DECLARE len INT DEFAULT 1;#代表截取的字符的長度 WHILE i<=num DO SET startIndex=FLOOR(RAND()*26+1);#產(chǎn)生一個隨機的整數(shù),代表起始索引1~26 SET len=FLOOR(RAND()*(26-startIndex+1)+1);#產(chǎn)生一個隨機的整數(shù),代表截取長度,1~(26-startIndex+1) INSERT INTO stringcontent(content) VALUES(SUBSTR(str,startIndex,len)); SET i=i+1;#循環(huán)變量更新 END WHILE; END$
3.調(diào)用存儲過程并顯示結(jié)果
CALL myfinal(10)$ SELECT * FROM stringcontent$
結(jié)果如下:

三、常見問題
1.字符串長度的聲明
個人認(rèn)為 content 對應(yīng)類型varchar長度應(yīng)定義在26以上,通過分析在截取子串時可能出現(xiàn)索引為1,字符串為26的情況。
因此在建表時,長度應(yīng)定義在26以上。
本文定義:
content varchar(30);
2.len會不會為負(fù)數(shù)
mysql中rand()函數(shù)產(chǎn)生的隨機數(shù)范圍為:0~1,因此按上述方式進行定義不會出現(xiàn)負(fù)數(shù)。
3.為什么結(jié)果會出現(xiàn)空值的情況
隨機字符串產(chǎn)生的原理是產(chǎn)生隨機起始索引和隨機長度,根據(jù)這兩個參數(shù)對默認(rèn)字符串進行截取。
因此結(jié)果出現(xiàn)空值情況的可能原因是截取到了沒有定義的字符,因此在定義字符串默認(rèn)值時輸入字母的長度一定要大于等于可截取字符串的最大長度。
本文定義:
DECLARE str VARCHAR(26) DEFAULT 'abcdefghijklmnopqrstuvwxyz';
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Mysql關(guān)于數(shù)據(jù)庫是否應(yīng)該使用外鍵約束詳解說明
MySQL 外鍵約束(FOREIGN KEY)是表的一個特殊字段,經(jīng)常與主鍵約束一起使用。對于兩個具有關(guān)聯(lián)關(guān)系的表而言,相關(guān)聯(lián)字段中主鍵所在的表就是主表,外鍵所在的表就是從表。外鍵用來建立主表與從表的關(guān)聯(lián)關(guān)系,為兩個表的數(shù)據(jù)建立連接,約束兩個表中數(shù)據(jù)的一致性和完整性2021-10-10
解決net start mysql--服務(wù)無法啟動 服務(wù)沒有報告任何錯誤問題
這篇文章主要介紹了解決net start mysql--服務(wù)無法啟動 服務(wù)沒有報告任何錯誤問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-12-12
CentOS 6.5下yum安裝 MySQL-5.5全過程圖文教程
在linux安裝mysql是一個困難的事情,yum安裝一般是安裝的mysql5.1,現(xiàn)在經(jīng)過自己不懈努力終于能用yum安裝mysql5.5了。下面通過兩種方法給大家介紹CentOS 6.5下yum安裝 MySQL-5.5全過程,一起學(xué)習(xí)吧2016-05-05
MySQL數(shù)據(jù)表設(shè)計之自動增長的實現(xiàn)
本文主要介紹了MySQL數(shù)據(jù)表設(shè)計之自動增長的實現(xiàn),包括創(chuàng)建數(shù)據(jù)表時設(shè)置自動增長和修改數(shù)據(jù)表時添加自動增長,具有一定的參考價值,感興趣的可以了解一下2025-03-03
spark rdd轉(zhuǎn)dataframe 寫入mysql的實例講解
今天小編就為大家分享一篇spark rdd轉(zhuǎn)dataframe 寫入mysql的實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-06-06

