You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL中ACTION、Link关键字含义及迁移至CockroachDB相关问题

MySQL Action与Link关键字相关问题解答

关键字属性结论

  • ACTION是MySQL的非保留关键字,仅在特定语法场景下有特殊含义:通常用于外键约束的参照动作定义,比如ON UPDATE NO ACTION、ON DELETE NO ACTION这类语法,非该场景下可以直接作为普通标识符使用,不需要额外转义。
  • LINK不属于MySQL的关键字范畴,完全是普通字符串,没有任何特殊语法作用。

你提供的建表语句说明

你贴出的两个建表语句里的Action、Link都不是作为关键字使用的,只是带空格的表名的组成部分:

  1. 第一条语句的表名实际是tabDocType Action,MySQL中包含空格的标识符需要用反引号包裹,原语句是缺了反引号的不规范写法,正确写法应为:
CREATE TABLE `tabDocType Action` (
  name varchar(140) COLLATE utf8mb4_unicode_ci NOT NULL,
  creation TIMESTAMP(6) DEFAULT NULL,
  modified TIMESTAMP(6) DEFAULT NULL,
  modified_by varchar(140) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  owner varchar(140) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  docstatus INT NOT NULL DEFAULT 0,
  parent varchar(140) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  parentfield varchar(140) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  parenttype varchar(140) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  idx INT NOT NULL DEFAULT 0,
  label varchar(140) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `group` varchar(140) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  action_type varchar(140) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  action text COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  PRIMARY KEY (name)
);

注意其中group也是MySQL的保留关键字,作为字段名使用也需要用反引号包裹。
2. 第二条语句的表名是tabDocType Link,已经用反引号包裹,属于合法的带空格表名写法,Link只是表名的一部分,没有其他特殊用途。

迁移到CockroachDB的适配建议

  • 所有需要转义的标识符(带空格的表名、关键字作为字段名等)统一用双引号包裹,CockroachDB遵循SQL标准,使用双引号作为标识符转义符,不支持MySQL的反引号写法。
  • utf8mb4_unicode_ci这类MySQL专属排序规则可以替换为CockroachDB支持的排序规则,默认使用en_US.utf8即可满足大多数场景需求。
  • 语句中的TIMESTAMP(6)、INT等数据类型CockroachDB完全兼容,无需修改。

内容的提问来源于stack exchange,提问作者Mark

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 20:48:01