标签 PostgreSQL 下的文章

postgreSQL中的publications简介

在 PostgreSQL(PG)中,Publication(发布)是逻辑复制机制中的一个概念,用于定义哪些表的数据变更(INSERT、UPDATE、DELETE)可以发布到订阅者(Subscribers)。它主要用于 逻辑复制,允许在不同的 PostgreSQL 实例之间同步数据表的变更,特别适合进行数据复制、分发、数据迁移等场景。

- 阅读剩余部分 -

nls_length_semantics参数

在不同的字符串编码方式下,一个中文字符对应的字符byte长度是不同的。比如,一个字段长度设置为10,如果是英文字符就可以容纳10位长度,如果是中文字符就只能容纳最多5位长度。如果采用如UTF-8类宽泛字符集类型,也就3-4个中文字符。

我们定义varchar2(10)其实是有两层理解,一则是10个byte位长度,另一则是10个输入字符长度。两种理解前者是技术派,后者理解是从业务应用角度看问题。

初始化参数NLS_LENGTH_SEMANTICS用于指定CHAR列或VARCHAR2列的长度定义方式,默认值为BYTE。当设置该参数为BYTE时,定义CHAR列或VARCHAR2列采用字节长度方式;当设置该参数为CHAR时,定义CHAR列或VARCHAR2列采用字符个数方式。需要注意,设置该参数对于已存在参数没有作用。

show nls_length_semantics;

alter system set nls_length_semantics=char;

select pg_reload_conf();

MySQL 和 PostgreSQL 对比

MySQL 和 PostgreSQL 是两个广泛使用的关系型数据库管理系统(RDBMS)。它们都具有强大的功能和广泛的社区支持,但在某些方面存在一些差异。本文将详细比较 MySQL 和 PostgreSQL,包括它们的特点、性能、扩展性、安全性以及适用场景等方面。

2023-08-04T12:15:32.png

- 阅读剩余部分 -

ThinkPHP框架MySQL转PostgreSQL

thinkphp项目需进行国产化,将原有mysql数据库转为基于postgresql的国产数据库。

以下内容需进一步测试完善

步骤(待完善,仅参考)

  1. 导出线上数据库到本地(含数据+结构、结构两种sql)

    • 修改char类型为varchar

      同时需导出一份数据表结构sql,修改char为varchar后导入ss_pg1;
    • 清理不必要的日志文件等数据
    • 修改部分日期字段(lawyer/_apply中的birthday等left(birthday, 1) <>1 and left(birthday, 1)<>2)
    • 修改lawyer_apply表birthday默认为Null
    • 使用navicat将“数据+结构”数据导入到ss_pg2库;

- 阅读剩余部分 -