我最近在使用postgresql-9.1。
由于某些原因,我必须使用一种不支持数据类型numeric而是支持decimal的技术。不幸的是,我在Postgresql中将列分配为decimal数据类型时,其数据类型始终为numeric。我尝试更改数据类型,但即使我收到了“查询返回成功,12毫秒内无结果”的消息,它也没有起作用。
因此,我想知道如何将这些列设置为decimal数据类型。
非常感谢任何帮助。
例如:
我的创建语句:
CREATE TABLE IF NOT EXISTS htest
(
dsizemin decimal(8,3) NOT NULL,
dsizemax decimal(8,3) NOT NULL,
hidentifier character varying(10) NOT NULL,
tgrade character varying(10) NOT NULL,
fdvalue decimal(8,3),
CONSTRAINT htest_pkey PRIMARY KEY (dsizemin , dsizemax , hidentifier , tgrade )
);
我的更改条款:
ALTER TABLE htest
ALTER COLUMN dsizemin TYPE decimal(8,3);
但是它没有起作用。
decimal
只是numeric
的别名,用于让针对 Oracle 编写的程序更加兼容。似乎不能使用DOMAIN
将其变成“真正”的别名,因此,除非你可以让程序在表元数据显示期望的decimal
而不是numeric
,否则你可能没有办法解决问题。尝试运行SELECT '1'::decimal;
以了解我的意思。 - Craig Ringer