一、关于字段中有大写字母的问题
1)mysql不区别大小写
2)postgresql 会自动把语句中的大写转化成小写字母,需要用把字段放在双引号内,才可以查询出结果。
例如: select "Username" from users;
但在mysql中使用这个语句, username就不会查询到值,而是把username当一个常量返回回来。
二、时间戳转日期
1)mysql:
select FROM_UNIXTIME(1231232112, "%Y-%m-%d %H-%i-%s")
2)postgresql:
select to_char(to_timestamp(1628088734), 'yyyy-mm-dd hh24:mi:ss')
三、PostgreSQL修改字段为自增主键
1)PostgreSQL的自增id设置, 数据类型为serial 类型,
如果是新增的时候,直接把这个字段的类型设置成serial 类型,可以根据数据的多少要不要设置serial8等。
2)修改某个字段为自增主键
-- 先把字段类型调整为 int8, 这一步操作耗时较长
alter table bw_data alter column dataId type int8;
-- 创建sequence, 默认bigint
-- 起始值从当前表中选取
select max(dataId) into max_dataId_from_data from bw_data;
create sequence bw_data_dataid_seq8 start with max_dataId_from_data;
-- 先将表的自增量主键字段 默认值置为null
alter table bw_data alter column dataId set default null;
-- 设置默认值为新的 sequence
alter table bw_data alter column dataId set default nextval('bw_data_dataid_seq8' ::regclass);
-- 原来的sequence 可以删除
drop sequence bw_data_dataid_seq;