2017-10-17 73 views
-2

在mysql中编写代码,在表中添加列颜色(varchar(20)),默认值为'pink',该列中的值为不允许的是:'白色','黑色','红色'(其他值允许!!)添加具有范围限制的列,该列的值不得为特定值

ALTER TABLE船 添加列颜色varchar(20)默认“粉红色”...?

+0

尽管表达不佳,这听起来像一个涉及CHECK CONSTRAINTS的问题,MySQL不支持,所以我想知道是否哟你用过正确的标签。 – Strawberry

回答

0

查询是正确的,但是作为color数据类型varchar您可以添加任何内容。你必须用你的编程语言来管理这些检查。

您可以使用Trigger来限制输入。这里有一个例子:

MySQL trigger before Insert value Checking

要限制你可以使用ENUM的投入,但它可以让你输入你定义为ENUM到数据库中只有特定的值

这里是文档链接:

https://dev.mysql.com/doc/refman/5.7/en/enum.html

+0

ENUM只有该列可能的值,我的问题是不能有这些值的列,如白色,黑色,红色。 对不起,我的英文不好 – yh264

+0

@ yh264那么你必须使用触发器: https://stackoverflow.com/questions/12836270/mysql-trigger-before-insert-value-checking –