MySQL腳本批量自動(dòng)插入數(shù)據(jù)及數(shù)據(jù)可按條件插入實(shí)現(xiàn)
1.MySQL腳本批量自動(dòng)插入數(shù)據(jù)(數(shù)據(jù)相同)
要自動(dòng)插入100條數(shù)據(jù),你可以使用循環(huán)來重復(fù)執(zhí)行插入語句。以下是一個(gè)示例腳本:
INSERT INTO 表名 (列1, 列2, 列3, ...) VALUES (值1, 值2, 值3, ...);
具體步驟如下:
- 將 "表名" 替換為你要插入數(shù)據(jù)的目標(biāo)表的名稱。
- 將 "列1, 列2, 列3, ..." 替換為需要插入值的目標(biāo)列的名稱列表。
- 將 "值1, 值2, 值3, ... " 替換為你要插入的具體值。如果有多個(gè)列需要插入不同的值,可以使用循環(huán)生成對應(yīng)的值。
以下是一個(gè)示例:
-- 假設(shè)有一個(gè)名為 "employees" 的表,表中有 id、name、age 和 salary 四個(gè)列 DELIMITER // CREATE PROCEDURE InsertData() BEGIN DECLARE i INT DEFAULT 1; WHILE i <= 100 DO INSERT INTO employees (id, name, age, salary) VALUES (i, CONCAT('John', i), 30, 5000); SET i = i + 1; END WHILE; END // DELIMITER ; CALL InsertData();
在上述示例中,我們定義了一個(gè)存儲(chǔ)過程 InsertData()
,然后使用循環(huán)從1到100插入100條數(shù)據(jù)到 "employees" 表中。
請注意,你需要先創(chuàng)建存儲(chǔ)過程,然后調(diào)用該存儲(chǔ)過程來自動(dòng)插入數(shù)據(jù)。確保已經(jīng)連接到正確的數(shù)據(jù)庫,并具有合適的權(quán)限來執(zhí)行插入操作。
2.MySQL腳本批量自動(dòng)插入數(shù)據(jù)(數(shù)據(jù)不相同)
如果每條數(shù)據(jù)不一樣,你可以使用循環(huán)來生成不同的值,并在每次循環(huán)中使用 INSERT INTO 語句插入新的數(shù)據(jù)。
以下是一個(gè)示例腳本:
-- 假設(shè)有一個(gè)名為 "employees" 的表,表中有 id、name、age 和 salary 四個(gè)列 DELIMITER // CREATE PROCEDURE InsertData() BEGIN DECLARE i INT DEFAULT 1; WHILE i <= 100 DO SET @employeeId = i; SET @employeeName = CONCAT('John', i); SET @employeeAge = FLOOR(RAND()*(65-18+1))+18; -- 隨機(jī)生成18到65歲的年齡 SET @employeeSalary = FLOOR(RAND()*(10000-3000+1))+3000; -- 隨機(jī)生成3000到10000的工資 INSERT INTO employees (id, name, age, salary) VALUES (@employeeId, @employeeName, @employeeAge, @employeeSalary); SET i = i + 1; END WHILE; END // DELIMITER ; CALL InsertData();
在上述示例中,我們定義了一個(gè)存儲(chǔ)過程 InsertData()
,使用循環(huán)生成不同的值,然后在每次循環(huán)中使用 INSERT INTO 語句插入新的數(shù)據(jù)到 "employees" 表中。
請注意,你需要先創(chuàng)建存儲(chǔ)過程,然后調(diào)用該存儲(chǔ)過程來自動(dòng)插入數(shù)據(jù)。在示例中,我們使用了 RAND() 函數(shù)來生成隨機(jī)的年齡和工資值。確保已經(jīng)連接到正確的數(shù)據(jù)庫,并具有合適的權(quán)限來執(zhí)行插入操作。
3.MySQL腳本批量自動(dòng)插入數(shù)據(jù)(數(shù)據(jù)按條件生成)
如果你想要限定 pay_date_time
列的值在最近五個(gè)月內(nèi),可以使用 DATE_SUB
函數(shù)和 INTERVAL
關(guān)鍵字來生成日期值。
如果 fac_id
列只能為指定的值 167、171、178、179、177、181、182 和 180,你可以使用 CASE WHEN
語句來生成隨機(jī)選擇的值。
以下是一個(gè)相應(yīng)的示例腳本:
INSERT INTO pay_msg (fac_id, pay_type, biz_order_no, order_no, amount, status, channel_pay_time, pay_date_time, buyer_biz_user_id, termrefnum, channel_fee, extend_info, accttype, pay_interface_out_trade_no, termauthno, cus_id, pay_interfacetrxcode, trx_amt, acct, app_id, deleted) SELECT CASE FLOOR(RAND() * 8) WHEN 0 THEN '167' WHEN 1 THEN '171' WHEN 2 THEN '178' WHEN 3 THEN '179' WHEN 4 THEN '177' WHEN 5 THEN '181' WHEN 6 THEN '182' ELSE '180' END, CASE FLOOR(RAND() * 3) WHEN 0 THEN 'Alipay' WHEN 1 THEN 'WeChat Pay' ELSE 'Credit Card' END, CONCAT('KE', FLOOR(RAND()*1000000+100000)), CONCAT('PY', FLOOR(RAND()*1000000+100000)), FLOOR(RAND() * 1000 + 1), CASE FLOOR(RAND() * 2) WHEN 0 THEN 'Success' ELSE 'Failed' END, NOW() - INTERVAL FLOOR(RAND() * 30) DAY, DATE_SUB(NOW(), INTERVAL FLOOR(RAND() * 4 + 1) MONTH), -- 限定在最近五個(gè)月內(nèi) CONCAT('User', FLOOR(RAND()*1000+1)), CONCAT('REF', FLOOR(RAND()*1000000+100000)), FLOOR(RAND() * 10 + 1), CONCAT('Extend', FLOOR(RAND()*1000+1)), CASE FLOOR(RAND() * 6) WHEN 0 THEN '00' WHEN 1 THEN '01' WHEN 2 THEN '02' WHEN 3 THEN '03' WHEN 4 THEN '04' WHEN 5 THEN '05' ELSE '99' END, CONCAT('TNO', FLOOR(RAND()*1000000+100000)), CONCAT('TAN', FLOOR(RAND()*1000000+100000)), CONCAT('CUS', FLOOR(RAND()*1000000+100000)), CONCAT('PTC', FLOOR(RAND()*1000+1)), FLOOR(RAND() * 1000 + 1), CONCAT('ACCT', FLOOR(RAND()*1000000+100000)), CONCAT('APP', FLOOR(RAND()*1000000+100000)), 0 -- 邏輯刪除設(shè)為0,表示未刪除 FROM information_schema.tables LIMIT 50;
在上述示例中,使用 DATE_SUB
函數(shù)和 INTERVAL
關(guān)鍵字限定 pay_date_time
列的值在最近五個(gè)月內(nèi)。使用 FLOOR(RAND() * 4 + 1)
生成一個(gè) 1 到 5 的隨機(jī)整數(shù),作為 INTERVAL
的參數(shù);使用 CASE WHEN
語句來從指定的值中隨機(jī)選擇一個(gè)值賦給 fac_id
列。其他列的生成邏輯與之前的示例相同。
請確保已經(jīng)連接到正確的數(shù)據(jù)庫,并具有合適的權(quán)限來執(zhí)行插入操作。
到此這篇關(guān)于MySQL腳本批量自動(dòng)插入數(shù)據(jù)及數(shù)據(jù)可按條件插入實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)MySQL腳本批量自動(dòng)插入內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MySQL數(shù)據(jù)庫高級數(shù)據(jù)操作之新增數(shù)據(jù)
這篇文章主要介紹了MySQL數(shù)據(jù)庫高級數(shù)據(jù)操作之新增數(shù)據(jù),文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-06-06mysql 數(shù)據(jù)庫取前后幾秒 幾分鐘 幾小時(shí) 幾天的語句
這篇文章主要介紹了mysql 數(shù)據(jù)庫中取前后幾秒 幾分鐘 幾小時(shí) 幾天的語句,需要的朋友可以參考下2018-01-01Mysql中STR_TO_DATE函數(shù)使用(字符串轉(zhuǎn)為日期/時(shí)間值)
這篇文章主要給大家介紹了關(guān)于Mysql中STR_TO_DATE函數(shù)使用的相關(guān)資料,STR_TO_DATE函數(shù)的主要功能是字符串轉(zhuǎn)為日期/時(shí)間值,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-09-09基于Redo Log和Undo Log的MySQL崩潰恢復(fù)解析
這篇文章主要介紹了基于Redo Log和Undo Log的MySQL崩潰恢復(fù)流程,點(diǎn)進(jìn)來的小伙伴不要錯(cuò)過奧2021-08-08MySQL中使用SHOW PROFILE命令分析性能的用法整理
這篇文章主要介紹了MySQL中使用show profile命令分析性能的用法整理,show profiles是數(shù)據(jù)庫性能優(yōu)化的常用命令,需要的朋友可以參考下2015-11-11