1

是否可以将值插入一个表并使用单个 mysql 调用更新另一个表?如果是,这是更快还是使用两个单独的调用更快?

例如:

表 1 - 汽车

id - 颜色 - 品牌

1 - 红色 - 奥迪

2-蓝色-庞蒂亚克

表 2 - 人

id - 姓名 - 姓氏

1 - 戴夫 - 安

2 - 贝丝 - 伊莱恩

表不相关

假设我想在更新 table1 汽车颜色的同时向人们添加另一行

那可能吗 ?

4

2 回答 2

0

使用存储过程...类似...

DROP PROCEDURE IF EXISTS insert_update $$
CREATE PROCEDURE insert_update
(
  IN id INT,
  IN color VARCHAR(10),
  IN name VARCHAR(20)
)
BEGIN
    -- do insert
THEN
    -- do update
END IF;

注意:我没有为您编写查询,因为您本身没有提供有关您的表的任何令人信服的信息。

于 2012-12-31T19:32:51.863 回答
0

在语义方面,我认为您希望执行事务而不是单个查询。

如果您的所有数据都是 MyISAM,请在此处停止。这是不可能的

如果您的所有数据都是 InnoDB,则可以设置两种范式:

范式#1

START TRANSACTION;
INSERT INTO people ...
INSERT INTO cars ...
COMMIT;

范式#2

在数据库会话中执行以下操作:

SET autocommit = 0;

然后做所有你想要的插入然后运行

COMMIT;

如果关闭数据库连接,一切都会回滚。所以,试着经常提交。

于 2012-12-31T19:39:27.370 回答