首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    一个表主键信息采集脚本

    查询目前哪些表有主键,可以通过information_schema.key_column_usage表来确定哪些列使用了主键约束,这个表中包含如下列,每个列的含义如下: CONSTRAINT_CATALOG :约束所属目录的名称。 该值始终为def。 CONSTRAINT_SCHEMA :约束所属schema(database)名称 CONSTRAINT_NAME :约束名称 TABLE_CATALOG :表所属目录的名称。 该值始终为def。 TABLE_SCHEMA :表所属schema(database)名称 TABLE_NAME :具有约束的表的名称 COLUMN_NAME :具有约束的列的名称。 如果约束是外键,则这是外键的列,而不是外键引用的列。 ORDINAL_POSITION :列在约束内的位置,而不是列在表中的位置。列位置从1开始编号。 POSITION_IN_UNIQUE_CONSTRAINT:NULL对于唯一和主键约束。对于外键约束,此列是正在引用的表的键中的序号位置。 REFERENCED_TABLE_SCHEMA :约束引用的schema(数据库)的名称。 REFERENCED_TABLE_NAME :约束引用的表的名称。 REFERENCED_COLUMN_NAME :约束引用的列的名称。 我们来看看这个表中的记录吧:

    01

    MYSQL 的表设计与使用,不要制造对立面

    一个表的设计,个人愚见,首先要看业务,以及你选择的架构,业务量是大还是小,业务是互联网性质的,还是传统性质的,业务是可变化较大的,还是比较固话的,等等,当然可能还有更细分的,从数据库的角度来看,你是准备使用哪种数据库,决定是可以分库分表,还是分区表,或者冷热表,在或者使用特殊的某些小手段,来让你的表更清爽一些。同时不同的数据库也赋予表设计更多的余地,所以我一直在希望开发和DBA能紧密结合,因为开发大部分是不知道各种数据库的门道,和一些奇特的功能,而DBA可能并未有开发人员的对业务理解的深刻,如果二者结合,则设计的表会比单方面设计的表要好的多。也更值得推敲。

    02
    领券