MySQL建表语句中unique doctype_name行的语法含义问询
关于MySQL建表语句中unique行的含义解答
你对这行语法的理解有误,unique doctype_name (doctype, name) 不会新增名为unique和doctype_name的列,这是一条联合唯一约束的定义语句,各部分含义如下:
unique:约束类型关键字,代表该规则是唯一约束,要求被修饰的字段组合不能出现重复值doctype_name:该唯一约束的自定义名称,后续如果需要删除、调整这个约束时,可以直接通过这个名称定位操作(doctype, name):该约束生效的字段列表,代表这两个字段的组合值在整张表中必须唯一
示例说明:如果表中已存在
doctype = 'User'、name = '张三'的记录,再插入相同doctype和name的记录时,数据库会抛出唯一冲突错误拒绝写入;但仅doctype重复、name不同,或仅name重复、doctype不同的记录是可以正常写入的。
这种写法属于SQL标准中的表级约束定义规则,和字段定义并列配置在创建表的括号内,仅作为表的数据校验规则存在,不会生成新的存储列。
内容的提问来源于stack exchange,提问作者Mark
相关产品推荐
相关产品推荐

