3
我想添加一個檢查約束例如如何創建MySQL工作臺CHECK約束
ALTER TABLE fruit
ADD CONSTRAINT check_colour CHECK(color IN ('black','white', 'green'))
我能做到這一點,在命令行,但是,我找不到添加複選項約束在Mysql Workbench中。我只能找到觸發器,但不能檢查約束。
我想添加一個檢查約束例如如何創建MySQL工作臺CHECK約束
ALTER TABLE fruit
ADD CONSTRAINT check_colour CHECK(color IN ('black','white', 'green'))
我能做到這一點,在命令行,但是,我找不到添加複選項約束在Mysql Workbench中。我只能找到觸發器,但不能檢查約束。
MySQL允許使用check constraint
的語法,但對此不做任何處理。因此,沒有檢查。
標準答案是使用觸發器來檢查值。在你的情況,不過,我想你應該有一個Colors
表和外鍵約束:
create table Colours (
ColourId int not null auto_increment primary key,
Colour varchar(255)
);
ALTER TABLE fruits
ADD COLUMN ColourId FOREIGN KEY (ColourID) REFERENCES Colours(ColourId);
這將確保只有合法的顏色是允許的。如果您在創建表格時執行此操作,則可以添加NOT NULL
。
爲什麼觸發器?你不能在這種情況下使用枚舉嗎? –
觸發器,因爲OP提到了檢查約束,這是實現該約束的唯一方法。另一種實現是使用枚舉。 –