mysql dbi mysql DBI 事務控制

2021-10-18 09:07:46 字數 1405 閱讀 9803

事務;

事務是任何健壯資料庫系統的基本組成,它們 防止錯誤和資料庫腐敗通過確保有關資料的改變是原子發生的(不可分割的,要麼所有要麼什麼都不做)

這個章節應用於資料庫支援事務和 autocommit 是關閉的,檢視"autocommit" 使用對於各種型別的資料庫。

推薦的方式實現健壯的事務在perl應用是使用raiseerror and eval

$dbh-> = 0; # enable transactions, if possible

$dbh-> = 1;

eval as it may also fail

eval ;

#!/usr/bin/perl

use dbi;

$db_name='zjzc';

$ip='127.0.0.1';

$user="root";

$passwd="1234567";

$dbh="";

$dbh = dbi->connect("dbi:mysql:database=$db_name;host=$ip;port=3306",$user,$passwd,) or die "can't connect to database ". dbi-errstr;

eval;

if( $@ ) 屬性的主要優勢是 dbi請求會被自動檢查,

[root@wx03 sbin]# cat a1.pl

use dbi;

use posix;

$db_name='scan';

$ip='127.0.0.1';

$user="root";

$passwd="***";

$dbh = dbi->connect("dbi:mysql:database=$db_name;host=$ip;port=3306",$user,$passwd,) or die "can't connect to database ". dbi-errstr;

eval;

if( $@ ) ) or die "can't connect to database ". dbi-errstr;

eval;

if( $@ ) {

my $xdate = strftime("%y%m%d%h%m%s",localtime());

#warn "database error: $dbi::errstr\n";

print "\$xdate is $xdate\n";

$dbh->rollback(); #just die if rollback is failing

$dbh->disconnect;

[root@wx03 sbin]# perl a1.pl

$xdate is 20160823110746

dbd::mysql::db do failed: ta

星空 控控控 上ke控 新浪部落格

摸不到的顏色是否叫彩虹 看不到的擁抱是否叫做微笑 乙個人想著乙個人 是否就叫寂寞 命運偷走如果只留下結果 時間偷走初衷只留下苦衷 你來過然後你走後 只留下星空 那一年我們望著星空 有那麼多的燦爛的夢 以為快樂會永久 像不變星空 陪著我獵戶天狼 侄女光年外的寂寞 回憶青春 夢想何時常常隱沒 我愛過然後...

MySql 事務詳解與 MVCC 多版本併發控制

原子性 atomicity 事務包含的所有操作要麼全部成功,要麼全部失敗回滾。一致性 consistency 事務必須使資料庫從乙個一致性狀態變換到另乙個一致性狀態,也就是說乙個事務執行之前和執行之後都必須處於一致性狀態。隔離性 isolation 事務之間相互隔離不被干擾。永續性 durabili...

PostgreSQL 十二 事務處理與併發控制

postgresql提供了多種資料完整性的保證機制,如約束 觸發器 約束和鎖管理等。12.1 事務管理簡介 事務是postgresql中的基本工作單元,是使用者定義的乙個資料庫操作序列,這些操作要麼全做要麼全不做,是乙個不可分割的工作單位。事務的屬性 原子性 atomic 事務必須是原子工作單元 對...