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创建新表时,会检查表中是否包含主键,如果没有主键,则会自动创建。
如下所示:
注:隐式主键的列名只能是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,sql,主键 From: https://blog.51cto.com/hcymysql/5952924