mysql - 在mysql中使用事务插入多个表

标签 mysql transactions sql-insert

我要插入两个表

A(id,firstName, lastName)B(id,来自 A 的 id,xyz)

如何使用事务同时插入两个表?

如果 B 没有被插入,那么也会回滚 A。你能帮帮我吗?

最佳答案

如果你沿着这条路走下去,请使用 mysql_insert_id()。

<?
mysql_query("START TRANSACTION");

$q1 = mysql_query("INSERT INTO table A (id, firstName, lastName) VALUES (?, ?, ?)");

// This is your baby. The id of the last record inserted
$last_inserted_id = mysql_insert_id();

$q2 = mysql_query("INSERT INTO table b (id, id from A, xyz) VALUES (?, ?, ?)");

// If query1 and query2 succeeded, commit changes to your database
// Creates both records
if ($q1 && $q2) {
    mysql_query("COMMIT");
}
else {        
    // Else initiate a rollback, and no records are committed.
    mysql_query("ROLLBACK");
}

?>

关于mysql - 在mysql中使用事务插入多个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25281602/

相关文章:

mysql - 映射(连接)创建表不允许外键?

mysql - Moodle SQL - 使用 2 个用户配置文件字段数据创建过滤器

mysql - 为什么锁定读取忽略隔离级别?

mysql - 运行时错误 3001 'Arguments are of the wrong type or out of acceptable range…' 插入 MySQL 数据库

sql - 忽略并发插入中的错误

php - 使用 PHP 和 MYSQL 加密数据(SHA1、MD5、MCRYPT_RIHNDAEL_256)

php - 从 mysql 文本数据类型列获取所有 <h2> 标记和 <p> 标记文本

php - 关于 PHP PDO Select for Update Transaction 的说明

mysql - 单消费者-多线程 vs 多消费者

mysql - 插入忽略不会忽略mysql中的重复项