我知道这可以使用事务,但我想使用单个mysql查询。
这是哪种常见格式交易
START TRANSACTION;
SELECT @A:=SUM(salary) FROM table1 WHERE type=1;
UPDATE table2 SET summary=@A WHERE type=1;
COMMIT;
但我需要知道单个mysql查询是否可行?
答案 0 :(得分:1)
不,它不能像
那样在单一声明中完成insert into table1,table2
要么像
那样单独进行insert into table1 ...
insert into table2 ...
(OR)
将insert语句包装在存储过程中并调用该过程,如
create procedure sp_insert_multiple
as
begin
insert into table1 ...
insert into table2 ...
end
致电SP
exec sp_insert_multiple
答案 1 :(得分:1)
你不能这样做。但是,您可以使用事务并将它们都包含在一个事务中。
START TRANSACTION;
INSERT INTO table_1 VALUES ('1','2','3');
INSERT INTO table_2 VALUES ('one','two','three');
COMMIT;
答案 2 :(得分:0)
通常,无法在单个查询中插入多个表。您可以在一个表中插入多行。像是
INSERT INTO tbl_test
(a1,a2,a3)
VALUES
(1,2,3),
(4,5,6),
(7,8,9);
你可以在Oracle中做到这一点
通过使用程序,您可以插入
create procedure insert_query
as
begin
insert into tbl_test1(a1,a2,a3) VALUES (1,2,3)
insert into tbl_test2 (b1,b2,b3) VALUES (1,2,3)
end
答案 3 :(得分:-2)
你可以像coz那样做。
MySQL不支持在单个INSERT语句中插入多表。
INSERT INTO NAMES VALUES(...)
INSERT INTO PHONES VALUES(...)
这是一个详细答案的链接..