SQL语句Mysql向postgresql迁移笔记

news/2024/7/9 21:49:15 标签: mysql, sql, postgresql

sqlpostgresql_0">SQL语句Mysql向postgresql迁移笔记

最近改用国产数据库,sql>mysql下的sql语句在在postgresql上执行报错,初步修改。

文章目录

  • SQL语句Mysql向postgresql迁移笔记
    • char类型查出来后面有空格
    • 双引号的使用
      • sql>mysql特有符号“`”需要改为双引号
      • postgresql关键字必须加双引号
      • 数据库名称,表名,列名等如果有大写字符,必须双引号
    • 连表更新语句
    • 时间函数
      • UNIX_TIMESTAMP 时间转时间戳
      • FROM_UNIXTIME 时间戳转时间
      • DATA_ADD 时间戳加减
    • 排序删除
    • VARCHAR 不允许默认空字符串,需要需要非空索引。

char类型查出来后面有空格

程序删除,或者修改为varchar类型

双引号的使用

sql>mysql_7">sql>mysql特有符号“`”需要改为双引号

sql>mysql特有符号【`】,需要替换为【"】双引号

SELECT `id`,`name`,`user`,`pwd` from `users`;

需要修改为

SELECT "id","name","user","pwd" from "users";

sql_17">postgresql关键字必须加双引号

SELECT id,name,user,pwd from users;

需要修改为

SELECT id,name,"user",pwd from users;

数据库名称,表名,列名等如果有大写字符,必须双引号

SELECT “ID”,“Name”,“User”,“Pwd” from “Users”;

连表更新语句

sql>mysql语法

UPDATE `custom`,`channels`
SET `custom`.`status` = `channels`.`Status`
WHERE `custom`.`id` = `channels`.`id`;

postgresql语法

UPDATE "custom"
SET "custom"."status" = "channels"."Status"
FROM   "channels"
WHERE "custom"."id" = "channels"."id";

时间函数

UNIX_TIMESTAMP 时间转时间戳

UNIX_TIMESTAMP(`start`) =>  TRUNC(EXTRACT(EPOCH FROM "start"))

FROM_UNIXTIME 时间戳转时间

FROM_UNIXTIME(时间戳) => TO_TIMESTAMP(时间戳)

DATA_ADD 时间戳加减

DATA_ADD(now() INTERVAL 180 SECOND) => now() + interval '180 S'
DATA_SUB(now() INTERVAL 180 SECOND) => now() - interval '180 S'

排序删除

sql>mysql语法

DELETE FROM `gb_alarms` WHERE `created_at` < DATE_SUB(CURDATE(),INTERVAL 90 DAY) ORDER BY `created_at` ASC LIMIT 1000;

postgresql语法

DELETE FROM "gb_alarms" WHERE "id" IN ( SELECT "id" FROM "gb_alarms" WHERE created_at < now( ) - INTERVAL '90 D' ORDER BY created_at ASC LIMIT 1000 );

VARCHAR 不允许默认空字符串,需要需要非空索引。

不知道为什么,无法配置postgresql的列默认值为空字符串,只能修改表结构,但是基本不影响。


http://www.niftyadmin.cn/n/189763.html

相关文章

【从零开始学习 UVM】3.7、UVM TestBench架构 —— UVM Monitor [uvm_monitor]

文章目录 什么是 monitor ?UVM monitor是做什么的?创建UVM monitor的步骤什么是 monitor ? 一个 UVM monitor 负责从设计接口捕获信号活动,并将其转换为可发送到其他组件的事务级数据对象。为了做到这一点,它需要以下内容: 虚拟接口句柄来处理此monitor尝试监视的实际接…

C++ LinuxWebServer 2万7千字的面经长文(上)

⭐️我叫忆_恒心&#xff0c;一名喜欢书写博客的在读研究生&#x1f468;‍&#x1f393;。 如果觉得本文能帮到您&#xff0c;麻烦点个赞&#x1f44d;呗&#xff01; 前言 Linux Web Server项目虽然是现在C求职者的人手一个的项目&#xff0c;但是想要吃透这个项目&#xff…

LFM雷达实现及USRP验证【章节3:连续雷达测距测速】

第一章介绍了在相对速度为0时候的雷达测距原理 目录 1. LFM测速 1.1 雷达测速原理 1.2 Chrip信号测速 2. LFM测速代码实现 参数设置 仿真图像 matlab源码 代码分析 第一章介绍了在相对速度为0时候的雷达测距原理&#xff0c;第二章介绍了基于LFM的雷达测距原理及其实现…

阿里云-云存储OSS

1.简述OSS 数据的可靠性较强&#xff1a;三重备份 系统的安全性较强&#xff1a;对称加密&#xff0c;签名权限控制以及防盗链功能&#xff1b; 文件存储的容量无限&#xff1b; 无需人工运维&#xff1b; 部署扩容&#xff1a;无需规则&#xff0c;按需扩容&#xff1b; 提供…

Android11.0 OTA差分包升级失败kDownloadStateInitializationError

AB_OTA升级模式开启条件下(MTK_AB_OTA_UPDATERy)&#xff0c;进行线刷验证OTA升级。 1.制作差分包相关参数说明 -b 过时的。 -k 签名所使用的密钥 -i 生成增量OTA包时使用此选项。后面我们会用到这个选项来生成OTA增量包。 -w 是否清除userdata分区 -n 在升级时是否不检查时间…

基于Prometheus的jvm监控指标详解

使用Prometheus 监控Springboot应用参考 Prometheus Operator实战—— Prometheus、Alertmanager、Grafana 监控Springboot服务 下面来看看jvm的监控指标 # HELP jvm_gc_collection_seconds Time spent in a given JVM garbage collector in seconds. # TYPE jvm_gc_collection…

电工电子高低温检测

电工电子产品通常采用基础标准GBT2423标准进行测试即可&#xff0c;对于非民用产品通常采用基础标准 GJB150A标准进行测试&#xff0c;在编写测试大纲时&#xff0c;可依据相应的检测标准的测试方法开展第三方实验室模拟测试。 一、总览 高低温检测涉及检测项目&#xff1a; 低…

docker安装以及springboot项目打包运行

我们都知道docker是一个非常好用的虚拟化容器&#xff0c;所谓虚拟化容器其实就是说可以将各个应用都隔离开来&#xff0c;每个应用都可以有自己的独立的运行时环境&#xff0c;这对于我们程序开发是非常有好处的&#xff0c;可以不需要去配置环境&#xff0c;每个组件都有独立…