2012-10-10 33 views
0

嘿,我想知道是否有可能每次查询一次使用多个INSERT?或者每次INSERT都必须一次完成一个?MySQL在1个查询中执行多个INSERT

比如我想执行这些2个查询为一体,以节省服务器资源:

INSERT INTO ExtraStats (date, supportStaff, startEmails, endEmails, emailsAnswered) VALUES ('2012-09-01', '5', '4', '3', '2') ON DUPLICATE KEY UPDATE supportStaff = '5', startEmails = '4', endEmails = '3', emailsAnswered = '2' 
INSERT INTO ExtraStats (date, supportStaff, startEmails, endEmails, emailsAnswered) VALUES ('2012-09-2', '5', '6', '7', '8') ON DUPLICATE KEY UPDATE supportStaff = '5', startEmails = '6', endEmails = '7', emailsAnswered = '8' 

反正是有将它们结合起来的?我试图将它们粘在同一个查询中,但它不喜欢它。

+0

创建存储过程并调用它。 – Abubakkar

回答

0

以分号隔开“;”像:

INSERT INTO ExtraStats (date, supportStaff, startEmails, endEmails, emailsAnswered) 
VALUES ('2012-09-01', '5', '4', '3', '2') ON DUPLICATE KEY UPDATE supportStaff = '5', 
startEmails = '4', endEmails = '3', emailsAnswered = '2'; 

INSERT INTO ExtraStats (date, supportStaff, startEmails, endEmails, emailsAnswered) VALUES 
('2012-09-2', '5', '6', '7', '8') ON DUPLICATE KEY UPDATE supportStaff = '5', startEmails = 
'6', endEmails = '7', emailsAnswered = '8'; 
1

是的,你可以试试这个

INSERT INTO tbl_name(col1,col2,col3) VALUES ('aaa','bbb','ccc'),('ddd','eee','fff'); 

,或者你可以先查询后把分号,并继续与第二个。

希望这会有所帮助。

1
INSERT INTO ExtraStats (date, supportStaff, startEmails, endEmails, emailsAnswered) 
VALUES ('2012-09-01', '5', '4', '3', '2') 
ON DUPLICATE KEY UPDATE supportStaff = '5', startEmails = '4', endEmails = '3', emailsAnswered = '2'; 

('2012-09-2', '5', '6', '7', '8') 
ON DUPLICATE KEY UPDATE supportStaff = '5', startEmails = '6', endEmails = '7', emailsAnswered = '8'