数据库如何用命令执行文件插入大量数据到数据库用oracle和mysql举例
在Oracle和MySQL中,你可以使用不同的方法来插入大量数据。
- Oracle: 使用PL/SQL的
INSERT ALL
语句或者BULK COLLECT
。
-- 使用INSERT ALL
BEGIN
INSERT INTO your_table (column1, column2) VALUES ('value1', 'value2');
INSERT INTO your_table (column1, column2) VALUES ('value3', 'value4');
-- 重复以上语句插入更多数据
COMMIT;
END;
/
-- 使用BULK COLLECT (需要先声明一个变量数组,填充数据后再使用)
DECLARE
TYPE column1_arr IS TABLE OF your_table.column1%TYPE;
TYPE column2_arr IS TABLE OF your_table.column2%TYPE;
col1_val column1_arr := column1_arr('value1', 'value3', ...); -- 填充数据
col2_val column2_arr := column2_arr('value2', 'value4', ...); -- 填充数据
BEGIN
FOR i IN 1 .. col1_val.COUNT LOOP
INSERT INTO your_table (column1, column2) VALUES (col1_val(i), col2_val(i));
END LOOP;
COMMIT;
END;
/
- MySQL: 使用
LOAD DATA INFILE
或者INSERT ... VALUES
,VALUES
可以包含多组值。
-- 使用LOAD DATA INFILE
LOAD DATA INFILE '/path/to/your/data.csv'
INTO TABLE your_table
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 ROWS;
-- 使用INSERT ... VALUES (需要多次执行)
INSERT INTO your_table (column1, column2) VALUES
('value1', 'value2'),
('value3', 'value4'),
-- 重复以上语句插入更多数据
('valueN', 'valueN+1');
在Oracle中,使用PL/SQL的INSERT ALL
语句或者BULK COLLECT
可以批量插入数据,并且可以通过批处理和事务控制来优化性能。在MySQL中,LOAD DATA INFILE
是一种更快的方法,适合大规模数据导入,特别是从文件中导入数据。
注意:在实际应用中,你可能需要调整表的索引、事务的大小或者使用其他性能优化技巧来处理大量数据的插入。
评论已关闭