gpt4 book ai didi

mysql - 对值添加约束,Mysql

转载 作者:行者123 更新时间:2023-11-29 06:20:05 24 4
gpt4 key购买 nike

我的 table

CREATE TABLE STUDENT ( 
BCN INT not null,
Stname varchar(50) not null,
Sex char(1) not null ,
primary key (BCN));

我想让 Sex 属性只接受两个值 'F' 或 'M'

我试过“检查”子句:

 Sex char(1) not null check (Sex = 'F' or Sex ='M' ) 

但不起作用,性别列仍然接受其他值,如 ('B') !

我尝试创建触发器:

DELIMITER $$ CREATE TRIGGER SexCheck BEFORE INSERT ON student
FOR EACH ROW
BEGIN
IF Sex <> 'M' and Sex <> 'F' THEN
SIGNAL SQLSTATE '10000'
SET MESSAGE_TEXT = 'check constraint on Student.Sex failed';
END IF;
END$$
DELIMITER ;

它不会产生任何语法错误,但 Sex 列不接受任何值,即使是“M”或“F”!它显示了我设置的消息。

我该如何解决?

-我正在使用 mysql workbench 6.3。

提前致谢

最佳答案

来自 CREATE TABLE :

The CHECK clause is parsed but ignored by all storage engines.

第二个:

CREATE TRIGGER SexCheck BEFORE INSERT ON  STUDENT
FOR EACH ROW
BEGIN
IF New.Sex NOT IN('F', 'M') THEN
SIGNAL SQLSTATE '10000'
SET MESSAGE_TEXT = 'check constraint on Student.Sex failed';
END IF;
END;


INSERT INTO STUDENT(Sex) VALUES ('B');
-- check constraint on Student.Sex failed

SqlFiddleDemo

关于mysql - 对值添加约束,Mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33725716/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com