【问题标题】:Issue while ALTER COLUMN in Postgresql [duplicate]Postgresql中的ALTER COLUMN问题[重复]
【发布时间】:2016-06-12 01:04:00
【问题描述】:

我有一个带有 id 和 name 的表,其中 id 是主键,bigint 作为数据类型。现在我想更改列,其中 id 作为主键,具有自动递增的值。

我的桌子:

 CREATE TABLE test(
  testid bigint NOT NULL,
  testname character varying(255),
   CONSTRAINT test_pkey PRIMARY KEY (testid)
);

更改查询:

ALTER TABLE test ALTER COLUMN testid BIGSERIAL PRIMARY KEY;

执行查询后出现以下错误,

ERROR:  syntax error at or near "BIGSERIAL"
LINE 1: ALTER TABLE test ALTER COLUMN testid BIGSERIAL P...
                                                         ^

********** Error **********

ERROR: syntax error at or near "BIGSERIAL"
SQL state: 42601
Character: 50

【问题讨论】:

    标签: sql postgresql primary-key


    【解决方案1】:

    你可以试试这个命令

    ALTER TABLE your_table ALTER COLUMN key_column TYPE BIGSERIAL PRIMARY KEY;
    

    希望对你有帮助

    【讨论】:

      【解决方案2】:
      --This will drop the primary key temporarily
      ALTER TABLE test
      drop CONSTRAINT test_pkey
      
      
      --change data type
      ALTER TABLE test
      ALTER COLUMN testid BigInt
      
      
      --add primary key
      ALTER TABLE test
      ADD CONSTRAINT test_pkey PRIMARY KEY (testid )
      

      【讨论】:

      • 该列已存在于表中。我想改变同样的。你能给我提供改变查询而不是添加
      • 请查看已编辑的。
      • 我试过了,得到以下错误,ERROR: syntax error at or near "default" SQL state: 42601
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-01
      • 2017-03-19
      • 1970-01-01
      • 2023-03-09
      • 2011-02-06
      • 2021-09-14
      相关资源
      最近更新 更多