Elena Franchini Asked: 2021-04-10 12:12:14 +0800 CST2021-04-10 12:12:14 +0800 CST 2021-04-10 12:12:14 +0800 CST 为 SQL 中的表创建添加约束 772 我必须创建一个包含元素 P、PType、PName、Price 和 Origin 的表 Product。 我需要约束所有具有 PType“肉类”的产品必须将“欧洲”作为原产地。我想在更改表中添加约束,但我看到使用更改表意味着在创建原始表后对其进行修改,但我需要在创建表时具有此条件。我不知道如何写这个约束,有人可以给我提示吗? mysql table 1 个回答 Voted Best Answer nbk 2021-04-10T12:31:11+08:002021-04-10T12:31:11+08:00 在 MySQL 8 (>= 8.0.16 ) 你可以使用CHECK CONSTRAINT 在旧版本中,您需要一个INSERT/UPDATE TRIGGER 也就是说,您还应该规范化您的表并使用查找(或参考/帮助)表来获取 Origin id 和 Type id。 CREATE TABLE Product ( P INT , PType varchar(19) , PName varchar(20) , Price DECIMAL(8,2) , Origin varchar(50) , CONSTRAINT CHK_type CHECK ((Ptype = 'meat' AND Origin ='Europe') OR Ptype <> 'meat' ) ); INSERT INTO Product VALUES (1,'meat','Kobe Beef',10000.00,'Japan') 违反检查约束“CHK_type”。 INSERT INTO Product VALUES (1,'apple','Breaburn',10.00,'New Zealand') ✓ db<>在这里摆弄
在 MySQL 8 (>= 8.0.16 ) 你可以使用
CHECK CONSTRAINT
在旧版本中,您需要一个
INSERT/UPDATE TRIGGER
也就是说,您还应该规范化您的表并使用查找(或参考/帮助)表来获取 Origin id 和 Type id。
db<>在这里摆弄