sql >> データベース >  >> RDS >> Sqlserver

自己参照外部キー制約と削除

    Andomar とは異なり、私はトリガーを使用して満足していますが、制約チェックを削除するつもりはありません。 ではなく として実装する場合 実際の削除を実行する前に、他の行を null にリセットできます:

    CREATE TRIGGER T_tabData_D
    on tabData
    instead of delete
    as
        set nocount on
        update tabData set fiData = null where fiData in (select idData from deleted)
        delete from tabData where idData in (select idData from deleted)
    

    短く簡潔です。SQL Server が同じテーブルへの外部キー カスケードを処理できる場合は必要ありません (他の RDBMS では、ON DELETE SET NULL を指定するだけでよい場合があります)。 外部キー制約の場合は YMMV)。



    1. Oracleのバージョンを確認する7つの方法

    2. 暗黙的結合と明示的結合のどちらが優れていますか?

    3. Rails移行で、移行を実行した時間ではなく、列のデフォルト値をNOW()に設定するにはどうすればよいですか?

    4. PHPMYSQLはアラビア語でデータを挿入します