0
点赞
收藏
分享

微信扫一扫

MySQL 8.0 还能为你自动创建主键?!

分湖芝蘭 2022-12-19 阅读 176

MySQL 8.0.31版本引入了一个参数​​sql_generate_invisible_primary_key​​​,开启这个参数,会在建表时,检查表中是否有主键,如果没有主键,则会自动创建。该参数非常实用,减少了DBA对sql语句表结构的审计。

自动创建主键

l  参数名称:​​sql_generate_invisible_primary_key​​​

l  作用范围:Global & Session

l  动态修改:Yes

l  默认值:OFF

该参数设置为ON时,sql语句create table创建新表时,会检查表中是否包含主键,如果没有主键,则会自动创建。

如下所示:

MySQL 8.0 还能为你自动创建主键?!_MySQL

MySQL 8.0 还能为你自动创建主键?!_主键_02

注:隐式主键的列名只能是my_row_id

默认情况下,副本不会为任何在源上创建时没有主键的复制表生成主键。     在 MySQL 8.0.31 及更高版本中,您可以通过设置参数REQUIRE_TABLE_PRIMARY_KEY_CHECK = GENERATE的语句,来使副本为此类表生成不可见的主键。​​CHANGE REPLICATION SOURCE TO​​

另外,也可以通过sqlops自动审核平台,检查表结构是否包含主键。

​​https://github.com/hcymysql/sqlops​​

MySQL 8.0 还能为你自动创建主键?!_MySQL_03

——摘自​​《MySQL运维进阶指南》​​一书扩展内容。

举报

相关推荐

0 条评论