Mysql数据库管理工作中,经常需要查看一个table的primary key, unique key, foreign key。而mysql 客户端提供的describe table_name命令,却只能显示一个表的primary key和foreign key。这里介绍一种查询unique key的方法。
Mysql所有有关数据schema的信息都保存在INFORMATION_SCHEMA这个database instance里面。其中的两个表,TABLE_CONSTRAINTS和KEY_COLUMN_USAGE,保存了表的所有key信息。
TABLE_CONSTRAINTS
保存一个表的约束条件,其columns如下:
CONSTRAINT_CATALOG
CONSTRAINT_SCHEMA
CONSTRAINT_NAME :约束的名称
TABLE_SCHEMA :表所在的database instance
TABLE_NAME : 表名称
CONSTRAINT_TYPE :约束类型(primary key, foreign key, 或者unique key)
KEY_COLUMN_USAGE
保存一个表的详细column对应的约束条件信息,其columns如下:
CONSTRAINT_CATALOG
CONSTRAINT_SCHEMA
CONSTRAINT_NAME
:约束的名称
TABLE_CATALOG
TABLE_SCHEMA
:表所在的database instanceTABLE_NAME: 表名称COLUMN_NAME :列名称
ORDINAL_POSITION
POSITION_IN_UNIQUE_CONSTRAINT
REFERENCED_TABLE_SCHEMA
REFERENCED_TABLE_NAME
REFERENCED_COLUMN_NAME
通过查询KEY_COLUMN_USAGE表,即可以获取一个表的所有详细约束条件。
关键的问题是在userid重复的时候你希望如何处理?
如果重复了不做处理,那就直接插入,失败了就算了。
如果重复了就修改,那么把插入语句的INSERT改为REPLACE,这样系统自动检查是否重复,重复的就做UPDATE,无重复就新插入。
具体是否有必要先进行检查,这看你的实际情况,如果实际一般都不会遇到重复,那么插入前检查就显得很多余。
如何设置mysql数据库字段为unique
key
用alter命令,代码如下:
alter
table
user
add
unique
key(`name`)
实现的方法和详细的 *** 作步骤如下:
1、第一步,使用navicat连接到mysql数据库并创建一个新的用户表,见下图,转到下面的步骤。
2、第二步,完成上述步骤后,填写一些测试内容以演示测试结果,见下图,转到下面的步骤。
3、第三步,完成上述步骤后,选择用户名,然后单击鼠标右键以选择“设计表”选项,见下图,转到下面的步骤。
4、第四步,完成上述步骤后,切换到设计表中的“索引”标签,见下图,转到下面的步骤。
5、第五步,完成上述步骤后,开始添加索引。如果不需要索引名称,则默认情况下可以为空。该工具将自动生成与字段名称相同的名称。单击字段后面的按钮以显示选择框,选择需要唯一约束的字段。在这里,登录到名称字段,见下图,转到下面的步骤。
6、第六步,完成上述步骤后,选择“索引类型”选项,唯一约束必须选择“Unique”类型,见下图,转到下面的步骤。
7、第七步,完成上述步骤后,将第三条数据的登录名修改为与第二条数据相同,然后单击下面的复选标记按钮进行保存,见下图,转到下面的步骤。
8、第八步,完成上述步骤后,保存时将报告错误,提示“Duplicate entry 'bb' for key 'login_name'”,重复的登录名无法成功保存,表明添加的唯一约束已生效,见下图。这样,就解决了这个问题了。
以上就是关于Mysql 如何查看一个表的unique key全部的内容,包括:Mysql 如何查看一个表的unique key、mysql设置了unique是先查询在插入还是插入后看数据库错误是否错误再更新、如何设置mysql数据库字段为unique key等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)