1. ホーム
  2. sqlite

[解決済み] SQLiteでENUM型を作成するには?

2022-08-09 15:28:17

質問

MySQL から SQLite にテーブルを変換する必要があるのですが、enum フィールドを変換する方法がわからないのです。 ENUM 型が SQLite にないためです。

前述したフィールドは pType になっています。

CREATE TABLE `prices` (
    `id` INT(11) NOT NULL AUTO_INCREMENT,
    `pName` VARCHAR(100) NOT NULL DEFAULT '',
    `pType` ENUM('M','R','H') NOT NULL DEFAULT 'M',
    `pField` VARCHAR(50) NULL DEFAULT NULL,
    `pFieldExt` VARCHAR(50) NULL DEFAULT NULL,
    `cmp_id` INT(11) NOT NULL DEFAULT '0',
    PRIMARY KEY (`id`)
)
ENGINE=MyISAM
ROW_FORMAT=DEFAULT

ユーザーが選択できる値が3つだけのフィールドが必要で、アプリケーションだけでなく、DBでもそれを強制したい。

どのように解決するのですか?

SQLiteにはenum型はなく、以下のようなものしかありません。

  • NULL
  • INTEGER
  • 実数
  • テキスト
  • ブロブ

ソース http://www.sqlite.org/datatype3.html

あなたのケースでは、小さなカスタム列挙型テーブルが必要になると思います。