Windows系统优化终极指南:用Win11Debloat重获流畅体验
2026/1/22 0:43:21
| 特性类别 | MySQL语法/功能 | openGauss语法/功能 | 不兼容说明 |
|---|---|---|---|
| 自增字段 | AUTO_INCREMENT | GENERATED BY DEFAULT AS IDENTITY | MySQL使用AUTO_INCREMENT关键字,openGauss使用IDENTITY列属性 |
| 字符串类型 | TINYTEXT,MEDIUMTEXT,LONGTEXT | TEXT(统一类型) | openGauss只有TEXT类型,没有按大小分类的文本类型 |
| 日期时间默认值 | TIMESTAMP支持CURRENT_TIMESTAMP默认值 | TIMESTAMP默认值需显式指定 | openGauss中TIMESTAMP字段设置默认值需完整语法 |
| 布尔类型存储 | BOOLEAN/BOOL(实际为TINYINT(1)) | BOOLEAN(真布尔类型) | 底层存储方式和字面值处理有差异 |
| 分页查询 | LIMIT m, n或LIMIT n OFFSET m | 只支持LIMIT n OFFSET m | MySQL支持两种语法,openGauss只支持标准SQL语法 |
| 注释语法 | # 注释 | 不支持#注释 | openGauss只支持--单行注释和/* */多行注释 |
| 字符串连接 | CONCAT()或 ` | `(需设置模式) | |
| 系统时间函数 | NOW()/sysdate()返回YYYY-MM-DD HH:MM:SS | NOW()返回带时区的时间戳 | 返回的数据类型和格式不同 |
| 日期计算 | DATE_ADD(date, INTERVAL 1 DAY) | date + INTERVAL '1 day' | 日期加减运算语法不同 |
| 空值处理函数 | IFNULL(expr1, expr2) | COALESCE(expr1, expr2) | 函数名称不同,功能等价 |
| 正则表达式 | REGEXP,RLIKE | ~,~*,!~,!~* | 正则表达式操作符完全不同 |
| 存储过程定义 | 使用DELIMITER改变分隔符 | 无需分隔符改变 | 存储过程定义语法结构差异大 |
| 变量声明 | SET @var = value;DECLARE var TYPE; | 使用varname type := value; | 变量声明语法和使用方式不同 |
| 游标声明 | DECLARE cur CURSOR FOR ... | cursor_name CURSOR FOR ... | 游标声明语法格式不同 |
| 系统元数据查询 | INFORMATION_SCHEMA表 | PG_CATALOG系统表 | 系统目录表结构和内容完全不同 |
| 用户创建 | CREATE USER 'user'@'host' IDENTIFIED BY 'pwd'; | CREATE USER user WITH PASSWORD 'pwd'; | 用户创建语法和主机限制不同 |
| 权限授予 | GRANT ALL ON db.* TO 'user'@'host'; | GRANT ALL PRIVILEGES ON DATABASE db TO user; | 权限授予的对象和语法不同 |
| 外键约束 | 支持完整的级联操作 | 支持外键但语法细节可能不同 | 外键约束的某些选项可能有差异 |
| 索引类型 | BTREE, FULLTEXT, SPATIAL | BTREE, GIN, GiST, SPGiST等 | 支持的索引类型和创建语法不同 |
| JSON函数 | JSON_EXTRACT(),->>,-> | json_extract_path_text(),->>,-> | JSON处理函数名称和参数有差异 |
| 事务设置 | SET TRANSACTION ISOLATION LEVEL ... | 语法相同但行为可能有差异 | 隔离级别的具体实现和行为可能不同 |
| 表锁定 | LOCK TABLES ... READ/WRITE | 不支持显式表级锁语句 | openGauss使用MVCC,不支持MySQL风格的表锁 |
| 备份恢复工具 | mysqldump,mysqlimport | gs_dump,gs_restore | 工具名称、参数和输出格式完全不同 |
| JDBC连接 | jdbc:mysql://host:port/db | jdbc:opengauss://host:port/db | JDBC驱动类名和URL格式不同 |
| 分组排序 | GROUP BY可以使用SELECT中的别名 | GROUP BY必须使用原始列名或表达式 | GROUP BY子句的引用规则更严格 |
| 隐式类型转换 | 较宽松的隐式类型转换 | 严格的类型检查 | openGauss类型转换更严格,需要显式转换 |
| 默认值表达式 | 支持常数、简单表达式 | 支持更复杂的表达式和函数调用 | 默认值的能力范围不同 |
| 子查询别名 | 派生表可以没有别名 | 派生表必须指定别名 | 子查询作为表使用时必须命名 |
| 递归查询 | 有限支持(8.0+) | 完整支持WITH RECURSIVE | 递归查询的支持程度和语法不同 |