MySQL 到 PostgreSQL:创建 quartz 表的 SQL 语句转换
以下是将 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 SET和COLLATE设置,因为 PostgreSQL 默认使用 UTF-8 编码。 - 去掉了
ENGINE、AUTO_INCREMENT和ROW_FORMAT设置,因为这些是 MySQL 特有的选项。 timestamp DEFAULT CURRENT_TIMESTAMP用于创建时间戳字段,等同于 MySQL 的timestamp NULL DEFAULT CURRENT_TIMESTAMP。NULL默认值不需要显示声明,PostgreSQL 默认情况下允许字段为空值。
注意:
- 转换后的语句可能需要根据实际情况进行调整。
- 建议使用 PostgreSQL 官方文档了解更多信息。
原文地址: https://www.cveoy.top/t/topic/doc2 著作权归作者所有。请勿转载和采集!