初めて質問します。
今、PerlのDBIを使ってMySQLのトランザクション処理にチャレンジしています。
ところが、rollback処理がうまくできません。
具体的には、 table2 がある状態で下のプログラムを動かすと、
エラーの表示が出るのに、 table1 は作成されました。
何らかのエラーがあれば、どちらも作成されないようにしたいです。
=======================================================
my %sql;
$sql{db_name} = "database";
$sql{host} = "localhost";
$sql{user_name} = "user_name";
$sql{password} = "password";
use DBI;
my $dbh = DBI->connect('DBI:mysql:'.$sql{db_name}.':'.$sql{host}, $sql{user_name}, $sql{password}
,{RaiseError => 1, PrintError => 0, AutoCommit => 0 }) || &Err();
my $sth;
my $re;
eval {
my $sql_string1 = "create table table1(`id` int);";
my $sql_string2 = "create table table2(`id` int);";
$sth = $dbh->prepare($sql_string1);
$re = $sth->execute;
$sth = $dbh->prepare($sql_string2);
$re = $sth->execute;
};
if ($@) {
$tag="Err:".$@."\n";
$sth = $dbh->rollback;
}else{
$sth = $dbh->commit;
}
$sth->finish;
$dbh->disconnect;
=======================================================
検索して、いろいろいじっても解決しませんでした。
どうかよろしくお願いします。
No.1ベストアンサー
- 回答日時:
CreateはDDLです。
DDLはロールバックできない。
Oracleもロールバックできない。
SQLServerはロールバックできる。
参考URL:http://dev.mysql.com/doc/refman/5.1/ja/cannot-ro …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- PHP 重複を防ぐ記述について教えて下さい。 3 2023/04/03 14:35
- MySQL テーブル作成です。どこかのスペルが間違っているか記号など スペースかな? 1 2022/10/01 05:08
- Oracle sqlで質問です。 aテーブルとbテーブルがあり、下記のsqlで取得したidとnameに一致しないレ 1 2022/04/20 20:34
- MySQL 何にかが違うから エラーなんでしょうね! 2 2022/09/18 05:28
- PHP DBのハッシュ化したパスワードをpassword_verifyで戻し照合したのですが上手く行きません 2 2023/02/06 13:24
- MySQL MySQLのテーブル作成でハイフン - は使用できないのでしょうか? 2 2022/10/21 16:50
- MySQL 参考書に従って入力したつもりでしたが、最後はエラーがでました。 1 2022/09/28 03:45
- PHP プログラムコードを入力する場合改行してもいいですか? 2 2022/10/02 16:05
- PHP 【PHP/MySQL】コード上で生成したクエリを基に集計クエリを作りたい 1 2022/07/28 15:06
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
perlからmysqlに接続できない
-
ActivePerl を使用して MySQL に
-
fetchrow_arrayとfetchrow_hash...
-
Excel VBAでリンク切れをチェッ...
-
Excel VBA 『Call』で呼び出す...
-
例外処理のフローチャートの記...
-
ユーザー定義関数に#NAME?が返...
-
VBAでoutlook365が起動しません。
-
VBAで別モジュールへの変数の受...
-
モジュールの最大数はいくつな...
-
ユーザーフォームに最小化・最...
-
VBでグローバル変数を宣言するには
-
'Range'メソッドは失敗しました
-
Excel VBAで、ユーザーフォーム...
-
サブルーチンを認識しません。
-
エクセルVBAでシートモジュール...
-
Excelシート内セル記述の違いに...
-
perl起動方法
-
【vba】フォームに書いてあ...
-
Excel VBA 定義されたプロージ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
fetchrow_arrayとfetchrow_hash...
-
perlでdb(mysql)に接続
-
perlのdbi-connect処理のエラー
-
PerlソースでのSQLのエラーにつ...
-
PerlでMySQLのテーブル一覧取得
-
ActivePerl を使用して MySQL に
-
MySQLのトランザクションについて
-
テキストデータをpostgreSQLの...
-
CGIからデータベースにデータを...
-
データベースにアクセス出来ま...
-
perlでのDBI接続
-
CGI(perl)データベースを教えて...
-
DBIでメールアドレスにマッチさ...
-
データベースへのデータの受け渡し
-
Oracleのデータベースに接続で...
-
ファイルデータ内容を SQL条件...
-
例外処理のフローチャートの記...
-
Excel VBAでリンク切れをチェッ...
-
ユーザー定義関数に#NAME?が返...
-
VBAで別モジュールへの変数の受...
おすすめ情報