Tau*_*s22 0 sql database oracle
如果数据与我想在NAME中允许的数据匹配,如何创建一个只允许将数据放入NAME的表.所以喜欢Bla1或Bla2.
CREATE TABLE Table1 (
NAME VARCHAR(23)
NAME has to be one of them: ('Bla1', 'Bla2')
)
Run Code Online (Sandbox Code Playgroud)
最好的方法是使用第二个表,其中包含所有允许的名称,并从Table1中的name字段到另一个表中的name字段创建一个FOREIGN KEY.这将自动失败任何名称未包含在允许名称列表中的插入查询.
这个拥有之类的东西ENUM和这样的,因为它不具有优势并不要求你重建你的表(这是一个非常昂贵的操作),你要允许另一个名字每一次,它也可以让你在以后添加更多的相关信息,以每通过将其添加到另一个表来命名.
这是一篇很棒的文章,说明为什么使用外键比使用表中的枚举或其他此类检查要好得多:http://komlenic.com/244/8-reasons-why-mysqls-enum-data-type-is -邪恶/
| 归档时间: |
|
| 查看次数: |
54 次 |
| 最近记录: |