为什么 ALTER TABLE xy ALTER COLUMN ab TYPE 类型在 PostgreSQL 中不起作用?
Why is ALTER TABLE xy ALTER COLUMN ab TYPE type not working in PostgreSQL?
我正在使用 PostgreSQL 和 Python,尽管当前问题的主题似乎是纯粹的 SQL。
基于PostgreSQL documentation,更改列的类型应该这样完成:
ALTER TABLE products ALTER COLUMN price TYPE numeric(10,2);
所以,如果我有一个名为“checks”的 table,其中有一列“check_date_time”,类型为“timestamp”,我想将其更改为“timestamptz” ,然后,基于以上,这应该有效:
ALTER TABLE checks ALTER COLUMN check_date_time TYPE timestamptz;
但你猜怎么着……事实并非如此。我不断收到错误消息
Error executing SQL statement. ERROR: syntax error at end of input
Position: 19 - Connection: Test: 31ms
顺便说一句,其他一切正常。我可以创建 tables、进行选择等,只是 ALTER 给我带来了这些麻烦。我已经处理了大约一个小时了,我真的 运行 不知道它可能有什么问题。非常欢迎任何建议。
转换时可能未应用正确的时区,如果您不明确说明,系统将采用时区,通常不是 UTC。
ALTER TABLE checks
ALTER check_date_time TYPE timestamptz USING check_date_time AT TIME ZONE 'UTC'
, ALTER check_date_time SET DEFAULT now();
我正在使用 PostgreSQL 和 Python,尽管当前问题的主题似乎是纯粹的 SQL。
基于PostgreSQL documentation,更改列的类型应该这样完成:
ALTER TABLE products ALTER COLUMN price TYPE numeric(10,2);
所以,如果我有一个名为“checks”的 table,其中有一列“check_date_time”,类型为“timestamp”,我想将其更改为“timestamptz” ,然后,基于以上,这应该有效:
ALTER TABLE checks ALTER COLUMN check_date_time TYPE timestamptz;
但你猜怎么着……事实并非如此。我不断收到错误消息
Error executing SQL statement. ERROR: syntax error at end of input
Position: 19 - Connection: Test: 31ms
顺便说一句,其他一切正常。我可以创建 tables、进行选择等,只是 ALTER 给我带来了这些麻烦。我已经处理了大约一个小时了,我真的 运行 不知道它可能有什么问题。非常欢迎任何建议。
转换时可能未应用正确的时区,如果您不明确说明,系统将采用时区,通常不是 UTC。
ALTER TABLE checks
ALTER check_date_time TYPE timestamptz USING check_date_time AT TIME ZONE 'UTC'
, ALTER check_date_time SET DEFAULT now();