Python MySQLロールバックの使用
4666 ワード
Python MySQLロールバックの使用
まず、2つのテーブルを作成します.テーブルタイプは
まず、正しいデータとSQL構文を表に挿入します.
上のプログラムはパスしており、両方のテーブルから対応するデータが挿入されていることがわかります.
次に、エラーのデータまたはSQL構文エラーを挿入します.
これは、対応するデータがない2つのテーブルを表示できます.
【参考】
ストレージエンジン:MyISAMとInnoDBの違い
【友情リンク】
Mac MySQLdbのインストール
まず、2つのテーブルを作成します.テーブルタイプは
INNODB
形式でなければなりません.
CREATE TABLE IF NOT EXISTS T_USER(
USER_ID INT(11) NOT NULL AUTO_INCREMENT COMMENT ' id',
USER_NAME VARCHAR(50) NOT NULL COMMENT ' ',
PRIMARY KEY (USER_ID)
)ENGINE = INNODB, CHARSET=utf8;
CREATE TABLE IF NOT EXISTS T_HOBBY(
USER_ID INT(11) NOT NULL COMMENT ' id',
HOBBY_ID INT(11) NOT NULL AUTO_INCREMENT COMMENT ' id',
HOBBY VARCHAR(50) NOT NULL COMMENT ' ',
PRIMARY KEY (HOBBY_ID)
)ENGINE = INNODB, CHARSET=utf8;
まず、正しいデータとSQL構文を表に挿入します.
insertSQL1 = "INSERT INTO T_USER(USER_ID, USER_name) VALUES (1, 'wqfqewf');"
insertSQL2 = "INSERT INTO T_HOBBY(USER_ID, HOBBY) VALUES ('1', 'asfs');"
conn = getDbConnent()
cursor = conn.cursor()
try:
cursor.execute(insertSQL1)
cursor.execute(insertSQL2)
cursor.close()
conn.commit()
except Exception, e:
cursor.close()
conn.rollback()
conn.close()
上のプログラムはパスしており、両方のテーブルから対応するデータが挿入されていることがわかります.
次に、エラーのデータまたはSQL構文エラーを挿入します.
insertSQL1 = "INSERT INTO T_USER(USER_ID, USER_name) VALUES (2, 'wqfqewf');"
insertSQL2 = "INSERT INTO T_HOBBY(USER_ID, HOBBY) VALUES (' ID', 'asfs');"
conn = getDbConnent()
cursor = conn.cursor()
try:
cursor.execute(insertSQL1)
cursor.execute(insertSQL2)
cursor.close()
conn.commit()
except Exception, e:
cursor.close()
conn.rollback()
conn.close()
これは、対応するデータがない2つのテーブルを表示できます.
【参考】
ストレージエンジン:MyISAMとInnoDBの違い
【友情リンク】
Mac MySQLdbのインストール