我有一个日期类似于"0000-00-00 00:00:00“的mySQL查询。PostgreSQL不接受此格式。是否有一个命令可以将所有这些日期更改为NULL?我正在将数据从mySQL数据库迁移到postgreSQL数据库。我现在想做的是用mySQL转储将数据从postgres数据库输入到postgres数据库。这样我就可以开始转换target数据库中的数据了。我的查询如下所示:
DROP TABLE IF EXISTS "table_name";CREATE TABLE "table_name" (
id integer NOT NULL,
version int NOT NULL,
created_by varchar(50) NOT NULL,
created_date timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP,
last_modified_by varchar(50) DEFAULT NULL,
last_modified_date timestamp(0) NOT NULL DEFAULT NULL,
name varchar(255) NOT NULL,
PRIMARY KEY (id),
CONSTRAINT UK_AkademischerTitel_Name UNIQUE (name)
) ;
INSERT INTO table_name VALUES (1,1,'admin','2016-02-13 23:00:00',NULL,'0000-00-00 00:00:00','Dr.')发布于 2019-05-06 19:29:55
只需查找和替换字符串即可解决此问题。如果您使用的是Linux,请在vi/vim编辑器中打开SQL文件,然后使用以下方法查找并替换此模式。
:0,$ s/'0000-00-00 00:00:00'/NULL/g在上面的行中,我们从第1(0)行搜索到末尾($),查找模式'0000-00-00 00:00:00‘,并将其全局替换为NULL,这意味着一行中有任意数量的匹配项。
https://stackoverflow.com/questions/56002332
复制相似问题