孩子学习需要打印资料,两年前在闲鱼上360元买了台二手打印机惠普 2035n,这是一家汽车销售门店关门处理的机器,一起发过来的还有一个他们未使用的新硒鼓,当时我猜测机器大概率不是组装翻新的,也许他们当时买的就是二手呢。

很不幸一收到我就把进纸仓1右侧的塑料卡扣弄断了,好在还能打,前前后后用了差不多两年,前几天打印发现它开始卡纸了,可怕的是卡纸很有规律,表现是每打一张就会多带进去一张纸卡在机器里,报卡纸错误。昨天我捣鼓了一下把进纸仓2用起来了,同样不幸的是老婆在处理卡纸时把进纸仓2右侧的一个塑料支撑部件掰断的,好在不影响打印。今早再打印发现进纸仓2像是感染了进纸仓1传播的病毒一样,也阳了,一打印就卡纸,去你的吧。

赶到公司我就着手买打印机了:孩子上学只需要打印A4纸,用不到彩色打印,也不用复印,只需要基础的打印功能,耗材便宜就够了。总结出目前我家庭对打印机的需求如下:

  1. 具有基础的打印功能;
  2. 稳定工作,不要经常出问题;
  3. 后期使用成本低;
  4. 新机器,不冒二手的风险了;
  5. 使用周期长,预期使用8-10年;
  6. 价格亲和。

据此,选择了惠普的P1108黑白激光打印机。

惠普·激光·打印机·P1108

早上在家给孩子打印学习资料,破打印机不支持自动双面打印,为了节省纸张手动操作双面打印,打完奇数,打偶数页过程中突发一次吃三张纸的问题,直接导致我多花了至少15分钟来梳理纸张页码,打完这些资料已经8:19了。

这几日我基本是8点前后出门上班的,今天较往日已迟15分钟。又碰到家里饮用水没了,晚就晚吧,先去换水。外面太阳已经升起来了,温暖柔和的阳光让人心生愉悦,这个时段小区里来往的人比往常的工作日多了一些,路面车位似乎也见不到几个空着的,猜测一些人应该没去上班。

换了水准备回家,阳光透过路边的樟树丛斜着照在地面和经过此路段的行人身上,这样的时光总能触动人的生活热情,我是不是该为家人的午饭再添点菜,电瓶车停在一旁的幼儿园门口,它的影子透过幼儿园紧闭的铁栅栏大门映在园里的塑胶地面上。我转身拐进了菜场,菜场里有不少人在走动,我已无心观察,拐进卖牛肉的那家铺子买肉,注意到右边那个经常光顾的蔬菜摊没开张。前几天孩子想吃爆鱼,买完肉又行经旁边的出口到菜场外围门面的那家爆鱼店买爆鱼,温暖又有些刺眼的阳光迎面扑来,眼前的停车场满满当当的都是车,买完爆鱼围着菜场外围绕回幼儿园找电瓶车,菜场外围的店铺都开着门,没什么人,看上去跟平日又没什么区别。

等到我回家收拾完,出门时已接近8:40。今天迟到了半个小时,路上收到消息,一个同事问我今天来不来,我明白这字里行间的另一种意思就是在问我身体有没有恙。等我进了大楼,又收到另一个阳了后在家休养前几天一直联系的前同事,问我今天有没有上班,我必须不能让他得到否定的答案,他则告诉我最近轻了,但是还会咳嗽,不想吃饭。

到了办公室,发现今天比昨天多来了几个人,16个人在岗了。前天阳性请假,昨天回岗上班的那个同事今天没来,可能还没彻底好。新回来的其中一个同事,时不时咳嗽,有时就轻轻的咳两下,有时又咳的急促深彻,让人听了觉得揪心,这种心理体会一部分来自于他的咳嗽声,另一部分则来自于对病毒的担忧。刚刚又听闻一个同事的家人已经阳三次了。这些都会给未感染的人带来心理压力。

自休假回来上班,我一直坚持自带午饭,希望以此避免外出就餐带来的传播风险。前几天带的菜全是清淡口味的,早上起来现烧饭菜,再装备带到公司,明明早上尝起来还算可口的饭菜,中午吃起就觉得不那么可口了。原因可能就如《随园食单》所说“物味取鲜,全在起锅时极锋而试;略为停顿,便如霉过衣裳,虽锦绣统罗,亦晦闷而!”。

《中国食辣史》上记述说上世纪在长江宜昌至重庆段讨生活的纤夫,每日消耗巨大,需要补充大量蛋白质,又负担不起高昂的鱼和肉,只能代之以下水和动物内脏,难免腥臭,需要加入辣椒来掩盖。于是,今早烧菜,特意放了三个小米椒,让菜突出辣味,尽量覆盖菜本身的味道,果然,中午吃起来就不觉得那么难吃了。

创建 postgres_fdw 扩展,只需创建一次,重复执行会提示该扩展已创建:

create extension postgres_fdw;

创建外部数据库对象

CREATE SERVER fd_dvdrental_server FOREIGN DATA WRAPPER postgres_fdw
OPTIONS ( HOST '127.0.0.1', dbname'dvdrental', port '5432' );

创建外部数据库的用户映射,把当前用户映射到外部数据库对象 fd_dvdrental_server 的 test 用户:

CREATE USER MAPPING FOR CURRENT_USER SERVER fd_dvdrental_server
OPTIONS ( USER 'test', PASSWORD 'test123' );

创建外部表,外部表对应外部数据库对象 fd_dvdrental_server 上的 school_for_med 表,这里创建的外部表字段必须是外部数据库对象上的原始表的子集,且字段类型也要一致:

CREATE FOREIGN TABLE fd_t_school_for_med ( 
school_id INT4 NOT NULL, --不外表不支持 primary key
school_code VARCHAR ( 10 ),
school_name VARCHAR ( 100 ) 
) 
SERVER fd_dvdrental_server OPTIONS ( TABLE_NAME'school_for_med' );

copy 是 pg 的特色命令,不是 SQL 标准命令。

CREATE temp TABLE school (
  school_id int4 NOT NULL primary key,
  school_code varchar(10),
  school_name varchar(100),
  is_star char(1)
);
INSERT INTO school ( "school_id", "school_code", "school_name", "is_star" )
VALUES
	( 1, 'A001', '理想中学', 1 ),
	( 2, 'A002', '红旗试验中学', 1 ),
	( 3, 'A003', '外国语学校', NULL );

以下是 Windows 环境下的copy tocopy from命令示例:

copy to

copy to用于将指定的查询列导出到指定文件:

COPY ( SELECT school_id, school_name FROM school ) TO 'D://fff.CSV' ( FORMAT CSV, HEADER TRUE, ENCODING GBK );
  • copy to 中的路径必须是绝对路径;
  • Windows 环境下件路径中的/要双写;
  • FORMAT 指定导出格式(目前只支持TXT(缺省) 和 CVS);HEADER 是否导出表头(只有当 FORMAT 为 CVS 时可用), ENCODING 导出的字符编码。

copy from

copy from用于将外部文件中的数据导入到当前库指定的表:

COPY school ( school_id, school_code, school_name, is_star ) 
FROM
	'D://fff.csv' ( FORMAT CSV, HEADER TRUE, ENCODING GBK, NULL 0 ) 
WHERE
	school_name != '外国语学校';
  • copy from 中的路径可以是绝对或相对路径;
  • Windows 环境下件路径中的/要双写;
  • FORMAT 指定导入文件格式(目前只支持TXT(缺省) 和 CVS),;HEADER 导入文件是否包含表头(只有当 FORMAT 为 CVS 时可用), ENCODING 导入文件的字符编码;NULL 指定的字符在导入时会被转换为 NULL;
  • WHERE 只能用在 copy from 命令中,用于过滤导入文件中的数据,符合过滤条件的数据行将被导入。