写一个MySQL存储过程,从TXT读取数据存到MySQL数据库。数据库只有一个data字段,格式为text。
时间: 2024-03-20 21:42:15 浏览: 205
好的,以下是一个简单的MySQL存储过程,可以从指定的TXT文件中读取数据并将其存储到MySQL数据库中:
```
DELIMITER //
CREATE PROCEDURE load_data_from_txt(IN file_path VARCHAR(255))
BEGIN
DECLARE data TEXT;
DECLARE done INT DEFAULT FALSE;
DECLARE file_handle TEXT;
-- 打开文件
SET file_handle = CONCAT('LOAD_FILE("', file_path, '")');
-- 开始读取文件
DECLARE file_cursor CURSOR FOR SELECT * FROM (SELECT SUBSTRING_INDEX(data, '\n', 1) AS line, SUBSTRING(data, CHAR_LENGTH(SUBSTRING_INDEX(data, '\n', 1)) + 2) AS data FROM (SELECT TRIM(TRAILING '\r' FROM ',\n' + REPLACE(file_handle, '\n', ',\n')) AS data) AS t) AS t2;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
OPEN file_cursor;
-- 逐行读取数据并插入到数据库中
read_loop: LOOP
FETCH file_cursor INTO data;
IF done THEN
LEAVE read_loop;
END IF;
INSERT INTO table_name(data) VALUES (data);
END LOOP;
CLOSE file_cursor;
END //
DELIMITER ;
```
你需要将上述代码中的 `file_path` 替换为你的TXT文件的路径,将 `table_name` 替换为你想要插入数据的表的名称。请确保该表中只有一个名为 `data` 的字段,格式为 `text`。
希望这可以帮到你!
阅读全文