ロールバックトランザクションに関する記事を読んでいましたが、必要なものが見つかりませんでした。ユーザーテーブルがあるとします。ユーザーは自分のレコードを更新できますが、入力された値がnullの場合はロールバックします。 C#でチェックするような簡単な方法がたくさんあることはわかっています。もしそれがヌルで、そのようなものなら、ここでのポイントはロールバックを理解することです。 if(null)コードでロールバックを使用するにはどうすればよいですか?nullの場合ロールバック
0
A
答えて
2
ロールバックはトランザクションで使用され、ロールバックはbegin tranが実行されたときの状態に復元します。
BEGIN TRAN 'tran1'
INSERT INTO Whatever table...
IF(... check for null)
BEGIN
ROLLBACK TRAN 'tran1'
RETURN 0
END
COMMIT TRAN 'tran1'
2
3つの方法があります。あなたのチェックが列定義のcheck
制約使用し、ただ一つの列にある場合はまず、:
create table test (
age int check (age > 40),
...
);
フォアより複雑な制約を、あなたはtriggers
が必要になります。利用可能なトリガの種類は、テクノロジ(Oracle、SQL Server、MySQL)によって異なります。更新トリガー前にの前にまたはのトリガーを挿入すると、例外が生成され、トランザクションが自動的に終了します(ロールバックに相当)。ここではMySQLの例である:
delimiter //
drop trigger if exists trg_trigger_test_ins //
create trigger trg_trigger_test_ins before insert on test
for each row
begin
declare msg varchar(128);
if new.age <= 40 then
set msg = concat('MyTriggerError: age incorrect : ', cast(new.id as char));
signal sqlstate '45000' set message_text = msg;
end if;
end
//
最後に、あなたがかロールバックをコミットしたい場合は、次に決める、あなたの変更を行い、トランザクションを開始することができます。
0
トランザクションをロールバックするには、まずトランザクションを開始する必要があります。原則DBMSには暗黙的なトランザクションがあり、何も指定されていなければ、すべての文またはバッチが開始され、コミット/ロールバックされます。あるいは、トランザクション境界を明示的に定義することもできます。
したがって、特定の列をNULLに設定して失敗してロールバックすることを含む(暗黙的で明示的な)トランザクションが必要な場合は、この列に対して制約を定義するだけです。
また、この列の値やその他の条件によっては、明示的なトランザクションのロールバックが必要な場合もあります。だからあなたは明示的にあなたのコードでこのチェックをする必要があります。
関連する問題
- 1. nullの場合のベロシティカスタムフィールドスキップ
- 2. Microsoft Access - Nullの場合
- 3. UploadedFileがnullの場合Primefaces
- 4. aspxerrorpath NULL IIS 6の場合
- 5. DateTimeオブジェクトがNULLの場合
- 6. NULL文の場合はPHP
- 7. Mockitoオブジェクトがnullの場合
- 8. これがnullの場合
- 9. リアクションネイティブ - そうでない場合null null
- 10. 影響を受ける行が0の場合のPDOロールバック
- 11. Sidekiqバックグラウンドジョブのロールバックが失敗した場合
- 12. nullの場合のSqlのcase文
- 13. NULLの場合0その他の値
- 14. SQL ServerプロシージャのパラメータNULLの場合
- 15. 例外の場合のauth()メソッドnull
- 16. EntityTemplateのコンテンツ長がnullの場合
- 17. AddWithValueパラメータがNULLの場合の例外
- 18. SQLAlchemyクエリのIDがnullの場合
- 19. NULLエラーの場合はelse文のエラー
- 20. Cでのmalloc((size_t)NULL)の場合
- 21. nullの場合のMySQL照会順序
- 22. WebScriptObjectがnullの場合の検出
- 23. @Versionがnullの場合のオプティミスティックロックエラー
- 24. JavaScriptのアラート値がnullの場合
- 25. の場合とNullのSQL文
- 26. のTeradata:フィールドがnullでない場合、
- 27. NULL値のある場合はmysql
- 28. Request.UrlReferrerがHTTPSの場合NULLです
- 29. getLaunchIntentForPackageがアプリの場合はnull
- 30. 呼び出し値がnullの場合
単にNOT NULL列ではないのはなぜですか? – jarlh
私はこれを行う方法はたくさんあると言いましたが、nullではなく、その1つですが、ifでロールバックの例が必要です。 「年齢が40歳代の場合はロールバック」のようなものになる可能性があります。ヌルをチェックすることは単なる例にすぎません@jarlh –
あなたが使っている言語とあなたが試みたコードにラベルを付けてください。 –