在MySQL中,我可以用以下方法原子地嵌套一系列事务:
START TRANSACTIONS;
UPDATE balance
SET current_balance = 40
WHERE id = 1;
UPDATE balance
SET current_balance = 50
WHERE id = 2;
COMMIT;
我可以在Server中做同样的事情
BEGIN TRANSACTION
UPDATE balance
SET current_balance = 40
WHERE id = 1;
UPDATE balance
SET current_balance = 50
WHE
由于多台机器环境,我的程序需要通过MySQL生成唯一的事务Id。
我使用下面的MySQL函数,我谷歌审查它不是原子的,我认为它是。
DELIMITER $$
CREATE DEFINER=`` FUNCTION `getNextTXID`(dummy INT) RETURNS int(11)
DETERMINISTIC
BEGIN
DECLARE txid bigint(20);
SET txid = (SELECT next_txid FROM txid_seq LIMIT 1 FOR UPDATE);
IF txid > 15000000 THEN
SET txid
所以我找到了这个例子代码,并计划为我的一个项目做一些类似的事情,但是有一个问题困扰着我
try {
// First of all, let's begin a transaction
$db->beginTransaction();
// A set of queries; if one fails, an exception should be thrown
$db->query('first query');
$db->query('second query');
$db->
我正在执行一个相当大的查询,访问MySQL连接超时。我知道如何更改超时值参数,但我也会从一台不能长期运行的膝上型计算机上查询。
数据库管理员告诉我,我可以将结果发送到一个表。在搜索之后,INSERT INTO dst_tbl SELECT * FROM src_tbl;似乎基本上就是一个想法(来源文章)。
但是,即使保存了我的结果,当我重新连接时,查询会从停止的地方提取吗?有办法检查我没有丢失/复制记录吗?
更广泛地说,我希望有任何关于如何在超时值约束下执行大型查询的建议。