PRIMARY KEY相关细节
- CONSTRAINT指定约束名称(PK表示PRIMARY KEY,FK表示FOREIGN KEY),若不指定,MySQL 会自动生成一个默认的约束名称
- COMMENT不仅仅可以指定字段的说明,还可以指定整个表的说明。
- 使用单独的 CONSTRAINT 声明约束,而不是直接在字段定义后声明约束(
label CHAR PRIMARY KEY NULL COMMENT '符号')。 - USING BTREE 明确指定了主键索引的类型为 B-Tree。
如果不显式指定 USING BTREE,MySQL 也会默认使用 B-Tree 索引,因为这是大多数存储引擎(如 InnoDB 和 MyISAM)支持的索引类型。
好处:单独一行声明约束,可以指定约束名称。明确指定了约束的名称(p_chn_location_PK),便于后续的管理约束(如通过约束名删除约束)
-- 直接在字段定义后声明
CREATE TABLE IF NOT EXISTS p_chn_location (
name varchar(100) NULL COMMENT '名称',
label CHAR NULL COMMENT '符号' PRIMARY KEY
)
-- 单独一行声明约束
CREATE TABLE IF NOT EXISTS p_chn_location (
name varchar(100) NULL COMMENT '名称',
label CHAR NULL COMMENT '符号',
CONSTRAINT p_chn_location_PK PRIMARY KEY (`label`) USING BTREE --USING BTREE可省略
)
ENGINE=InnoDB
DEFAULT CHARSET=utf8mb4
COLLATE=utf8mb4_general_ci
COMMENT='通道位置';
ALTER TABLE table_name DROP CONSTRAINT constraint_name; -- 如果约束有名称,也可以通过名称来删除
ALTER TABLE table_name DROP PRIMARY KEY; -- 每个表只能有1个主键约束,可以不指定名称直接删除
ALTER TABLE table_name ADD CONSTRAINT table_name _PK PRIMARY KEY (`field1`,`field2`);
ALTER TABLE table_name DROP PRIMARY KEY, ADD PRIMARY KEY (`field`); -- 先删除现有主键,在字段field上增加主键,主键名

浙公网安备 33010602011771号