采用方法是通过存储过程实现,此方法同样可应用批量更新,具体如下:
1 存储过程:
需要执行的语句:
DROP PROCEDURE IF EXISTS insert_test;
DELIMITER $
CREATE PROCEDURE insert_test ()
BEGIN
DECLARE i INT DEFAULT 1 ;
WHILE i <= 800 DO
INSERT INTO r_lamp_info (
`Lamp_Code`,
`Lamp_Name`,
`EquModel_ID`,
`EquClass_ID`,
`EquSection_ID`,
`Group_ID`,
`Factory_ID`,
`Date_Factory`,
`Gis_Pos_X`,
`Gis_Pos_Y`,
`Date_Created`,
`Date_Modified`,
`Created_By`,
`Modified_By`,
`Is_Available`,
`Supplement`,
`Lamp_Addr`
)
VALUES
(
CONCAT('0301000000', 2603 + i),
CONCAT('LD', 200 + i),
'123',
'21',
'51',
'167',
'51',
'1561046400000',
'116.98496381011259',
'33.68171874673244',
'1561046400000',
NULL,
'',
NULL,
'1',
'',
NULL
) ;
SET i = i + 1 ;
END
WHILE ; END$
DELIMITER ;
注:DELIMITER这个命令的用途,在MySQL中每行命令都是用“;”结尾,回车后自动执行,在存储过程中“;”往往不代表指令结束,马上运行,而DELIMITER原本就是“;”的意思,因此用这个命令转换一下“;”为“ ” , 这 样 只 有 收 到 “ ”,这样只有收到“ ”,这样只有收到“”才认为指令结束可以执行。“insert_test”为自定义过程名,用于call。
2 查看存储过程是否创建成功
执行语句:
show procedure status;
运行创建过程命令:
执行语句:
call insert_test();