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

テーブル作成時のSQL整数範囲

    作者のメモ :この回答の最初の2つの部分は正しくありません。 MySQLはCHECKをサポートしていると思いました 制約がありませんでした。それでもしません。列を単純な値のリストに制限するには、ENUMを使用します この答えの終わりにアプローチします。ロジックがより複雑な場合(値の範囲、別の列に基づく値など)、MySQLオプションはトリガーのみです。

    CHECKが必要です INTの場合は制約 :

    CREATE TABLE Site (
      SiteID INT,
      CONSTRAINT SiteID_Ck CHECK (SiteID IN (1, 2, 3, 4)),
      ... and the rest
    

    または:

    CREATE TABLE Site (
      SiteID INT,
      CONSTRAINT SiteID_Ck CHECK (SiteID BETWEEN 1 AND 4),
      ... and the rest
    

    または、文字列SiteIDを使用できる場合は、次のようにします。

    CREATE TABLE Site (
      SiteID ENUM('1', '2', '3', '4'),
      ... and the rest
    



    1. mysqlデータベースをリバースエンジニアリングしてdjangoアプリを作成する

    2. RockyLinuxおよびAlmaLinuxにMariaDBをインストールする方法

    3. mysqlのトリガーの代わりに

    4. %NOTFOUNDはフェッチ後にnullを返すことができますか?