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

DBに同じ名前の制約が存在する可能性はありますか?

    いいえ-制約はデータベースオブジェクトでもあるため、その名前は一意である必要があります。

    たとえば、追加してみてください。制約に対するテーブル名。そうすれば、テーブルは一意になります。

    CREATE TABLE BankAccount
    (
        BankAccountID   INT            PRIMARY KEY,
        EmployerCode    VARCHAR(20)    NOT NULL,
        Amount          MONEY          NOT NULL,
        CONSTRAINT FK_BankAccount_Employer 
            FOREIGN KEY (EmployerCode) REFERENCES Employer
    )
    

    基本的に「FK_」(子テーブル)_(親テーブル)」を使用して制約に名前を付け、この命名規則に非常に満足しています。

    MSDNからの情報

    その制約名はスキーマに固有である必要があります(つまり、同じデータベース内の2つの異なるスキーマの両方に同じ名前の制約を含めることができます)は明示的に文書化されていません。むしろ、データベースオブジェクトの識別子は、他に指定されていない限り、含まれているスキーマ内で一意である必要があると想定する必要があります 。したがって、制約名は定義 です。 として:

    これをインデックス の名前と比較してください。 :

    これにより、識別子の範囲が明示的に狭められます。



    1. sqlalchemyで日付を比較する方法は?

    2. Android:MySQLに保存するデータを送信する

    3. PostgreSQLの関数内でSELECTの結果を返す方法は?

    4. PostgreSQL count(*)が常に遅い場合、複雑なクエリをページ付けする方法は?