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

チェック制約のサブクエリ

    本当に必要なのは外部キー制約であることに注意してください。とはいえ、「クエリ」をチェックに取り込むには、クエリを含み、スカラー値を出力する関数を記述し、その関数をチェック制約で使用します。

    CREATE FUNCTION myFunction (
        @field DATATYPE(?)
    )
    RETURNS VARCHAR(5)
    AS
    BEGIN
        IF EXISTS (SELECT* FROM Table2 WHERE MYFIELD = @field)
            return 'True'
        return 'False'
    END
    

    そんな感じ。テストされていません。

    次に、そのようにチェックに追加できます

    ALTER TABLE Table1
        WITH CHECK ADD CONSTRAINT CK_Code
        CHECK (myFunction(MYFIELD) = 'True')
    


    1. ProgrammingError:スレッドで作成されたSQLiteオブジェクトは、同じスレッドでのみ使用できます

    2. パッチはどこにありますか?

    3. SphinxをMySQLに統合する

    4. PostgreSQLパーティションシーケンスを作成するにはどうすればよいですか?