2021年8月

最近在使用Golang开发数据库操作过程中,涉及到PostgreSQL的主键自增长,一般在MySQL中可以使用AUTO_INCREMENT字段来实现主键自增长,语句如下:

CREATE TABLE IF NOT EXISTS `table_name`(
   `id` INT UNSIGNED AUTO_INCREMENT,
   `title` VARCHAR(100) NOT NULL,
   `author` VARCHAR(40) NOT NULL,
   `sub_date` DATE,
   PRIMARY KEY ( `id` )
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

但在PostgreSQL中无法使用AUTO_INCREMENT,经过查询得知PostgreSQL需要使用序列来标识字段的自增长,语句如下:

#先创建序列
CREATE SEQUENCE upms_id_seq START 1;

#主键赋默认值
CREATE TABLE "table_name" (
  "id" int4 NOT NULL DEFAULT nextval('upms_id_seq'),
  "title" varchar(100) NOT NULL,
  "author" varchar(40) NOT NULL,
  "sub_date" timestamptz,
  PRIMARY KEY ("id")
);

最近给服务器拷贝文件,由于文件较大,网络传输较慢,所以想到拿U盘拷贝,由于macOS、Windows、Linux系统之间文件格式互不兼容,所以搜了下哪种格式最适合,于是让我找到了UDF格式,具体的格式内容可以参考维基百科 - Universal Disk Format

由于各种Windows和macOS格式化会存在兼容问题,所以推荐在macOS或Linux环境下使用开源工具进行格式化
https://github.com/JElchison/format-udf
查看挂载硬盘,找到你那个U盘,形如/dev/sdb、/dev/disk2这样的,然后再执行格式化。

fdisk -l  #我电脑显示/dev/disk2,以disk2为例
./format-udf.sh /dev/disk2 "My UDF External Drive"

格式化以后,插入macOS和Windows会自动识别U盘,插入Linux系统需要新建个目录并执行挂载命令。

mkdir /mnt/usb
mount -t udf /dev/sdb /mnt/usb

使用完以后,macOS和Windows需要弹出U盘,Linux执行卸载命令才可以拔掉,否则会造成数据丢失。

umount /dev/sdb