Php 是否可以使用一个mysql查询在两个不同的表中插入数据而不使用事务?
我知道这是可能的使用事务,但我想做它使用单一的mysql查询 这是哪种常见格式的事务Php 是否可以使用一个mysql查询在两个不同的表中插入数据而不使用事务?,php,mysql,Php,Mysql,我知道这是可能的使用事务,但我想做它使用单一的mysql查询 这是哪种常见格式的事务 START TRANSACTION; SELECT @A:=SUM(salary) FROM table1 WHERE type=1; UPDATE table2 SET summary=@A WHERE type=1; COMMIT; 但是我需要知道单个mysql查询是可能的吗?你可以像coz那样做 MySQL不支持在单个INSERT语句中插入多个表 INSERT INTO NAMES VALUES(...
START TRANSACTION;
SELECT @A:=SUM(salary) FROM table1 WHERE type=1;
UPDATE table2 SET summary=@A WHERE type=1;
COMMIT;
但是我需要知道单个mysql查询是可能的吗?你可以像coz那样做 MySQL不支持在单个INSERT语句中插入多个表
INSERT INTO NAMES VALUES(...)
INSERT INTO PHONES VALUES(...)
这是一个详细答案的链接
不,它不能像
insert into table1,table2
要么你喜欢
insert into table1 ...
insert into table2 ...
(或)
将insert语句包装在存储过程中,并像下面那样调用该过程
create procedure sp_insert_multiple
as
begin
insert into table1 ...
insert into table2 ...
end
打电话给SP
exec sp_insert_multiple
通常不可能在单个查询中插入多个表。可以在一个表中插入多行。像
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
你不能这样做。但是,您可以使用一个事务,并将它们都包含在一个事务中
START TRANSACTION;
INSERT INTO table_1 VALUES ('1','2','3');
INSERT INTO table_2 VALUES ('one','two','three');
COMMIT;
您真的需要在一个查询或一个事务中完成这项工作吗?在MySql中,不能在一个查询中完成这项工作。如果您正在使用InnoDb,只需使用
start transaction
,然后在末尾插入两个insert
和commit
。@Haaron,但这个答案说您不能在MySql中执行,但可以在Oracle中执行。当然,在Oracle中这是可能的,但问题是关于MySql的。Kodirko是的,在MySql中你不能这么做。不是两个插入查询,只有一个插入查询我相信同一个问题的另一个答案对你有用,基本上是两个查询。。正如我所建议的。。伙计,不是两个查询,只有一个插入query@ShafiqulIslam,不能在单个insert语句中向多个表插入值。