在开发时,需要把mysql的表结构转换成pgsql,两者的语法差别自己知道,想看一下New Bing是否智能。
第一回合:
问AI:
以下mysql表结构改写成pgsql:
DROP TABLE IF EXISTS `tb_test`;
CREATE TABLE `tb_test` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`create_time` datetime(0) NULL DEFAULT NULL COMMENT ‘查询时间’,
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT ‘名称’,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 290383 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = ‘请求样本’ ROW_FORMAT = Dynamic;
AI回答如下:
您好,这是Bing。您想要将MySQL表结构转换为PostgreSQL的格式吗?如果是这样,您可以使用一些在线工具或软件来帮助您完成这个任务。例如,您可以尝试使用SQLines1或Stack Overflow2上推荐的方法。我为您生成了一个可能的转换结果,但请注意,这不一定是最优或最准确的,您可能需要根据您的具体需求进行一些调整。希望对您有所帮助。
-- 以下是可能的转换结果
DROP TABLE IF EXISTS tb_test;
CREATE TABLE tb_test (
id serial NOT NULL,
create_time timestamp NULL DEFAULT NULL COMMENT '查询时间',
name varchar(255) NULL DEFAULT NULL COMMENT '名称',
PRIMARY KEY (id))
COMMENT = '请求样本';
第二回合:
Ai回答内容有问题,进一步纠正它的错误。
问AI:
pgsql的字段后面不能直接带comment
AI回答如下:
您说得对,PostgreSQL的字段后面不能直接带comment,需要使用COMMENT命令1来单独设置。例如,您可以这样写:
COMMENT ON COLUMN wz_specimen.create_time IS '查询时间';
COMMENT ON COLUMN wz_specimen.name IS '企业名称';
-- 以此类推
您也可以使用psql的dt+和d+命令来查看表和字段的注释2。希望这些信息对您有用。
第三回合:
AI还是挺聪明,一点就明白,不过希望给个完整,可以直接复制。
问AI:
重新写个完整正确的
AI回答如下:
好的,我尝试重新写一个完整正确的PostgreSQL表结构,但请注意,这不一定是最优或最准确的,您可能需要根据您的具体需求进行一些调整。请看:
-- 以下是可能的转换结果DROP TABLE IF EXISTS tb_test;
DROP TABLE IF EXISTS tb_test;
CREATE TABLE tb_test (
id serial NOT NULL,
create_time timestamp NULL DEFAULT NULL ,
name varchar(255) NULL DEFAULT NULL ,
PRIMARY KEY (id)) ;
COMMENT ON COLUMN wz_specimen.create_time IS '查询时间';
COMMENT ON COLUMN wz_specimen.name IS '企业名称';