以下是将 MySQL 创建表的语句转换为 PostgreSQL 的语句:

CREATE TABLE `quartz`  (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `template_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `website_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `trigger_time` bigint(20) NULL DEFAULT NULL,
  `create_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;

转换为 PostgreSQL 语句:

CREATE TABLE quartz (
  id SERIAL PRIMARY KEY,
  template_id varchar(255),
  website_id varchar(255),
  trigger_time bigint,
  create_time timestamp DEFAULT CURRENT_TIMESTAMP
);

解释:

  • SERIAL PRIMARY KEY 用于创建自增主键,等同于 MySQL 的 AUTO_INCREMENT
  • 去掉了 CHARACTER SETCOLLATE 设置,因为 PostgreSQL 默认使用 UTF-8 编码。
  • 去掉了 ENGINEAUTO_INCREMENTROW_FORMAT 设置,因为这些是 MySQL 特有的选项。
  • timestamp DEFAULT CURRENT_TIMESTAMP 用于创建时间戳字段,等同于 MySQL 的 timestamp NULL DEFAULT CURRENT_TIMESTAMP
  • NULL 默认值不需要显示声明,PostgreSQL 默认情况下允许字段为空值。

注意:

  • 转换后的语句可能需要根据实际情况进行调整。
  • 建议使用 PostgreSQL 官方文档了解更多信息。
MySQL 到 PostgreSQL:创建 quartz 表的 SQL 语句转换

原文地址: https://www.cveoy.top/t/topic/doc2 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录