相关疑难解决方法(0)

自动增量表列

使用Postgres,我试图AUTO_INCREMENT在SQL中自动编号我的主键.但是,它给了我一个错误.

CREATE TABLE Staff   (
  ID        INTEGER NOT NULL AUTO_INCREMENT,
  Name      VARCHAR(40) NOT NULL,
  PRIMARY KEY (ID)
);
Run Code Online (Sandbox Code Playgroud)

错误:

********** Error **********
ERROR: syntax error at or near "AUTO_INCREMENT"
SQL state: 42601
Character: 63
Run Code Online (Sandbox Code Playgroud)

知道为什么吗?

sql postgresql types auto-increment database-table

29
推荐指数
1
解决办法
5万
查看次数

如何复制PostgreSQL表的结构和内容,但重复序列?

我正在尝试设置临时表以进行单元测试.到目前为止,我设法创建一个复制现有表结构的临时表:

CREATE TEMP TABLE t_mytable (LIKE mytable INCLUDING DEFAULTS);
Run Code Online (Sandbox Code Playgroud)

但这缺乏原始表中的数据.我可以使用CREATE TABLE AS语句将数据复制到临时表中:

CREATE TEMP TABLE t_mytable AS SELECT * FROM mytable;
Run Code Online (Sandbox Code Playgroud)

但是结构t_mytable将不相同,例如列大小和默认值不同.是否有一个复制一切的声明?

我在使用第一个查询时遇到的另一个问题LIKE是,关键字段引用原始表的ID序列,因此在插入时递增它.有没有简单的方法来复制单元测试表的序列,还是我必须手动设置新的序列?

sql postgresql temp-tables create-table

10
推荐指数
2
解决办法
1万
查看次数

如何将主键从整数转换为串行?

在Postgres 9.3表中,我有一个integer主键,自动序列递增,但我达到了最大值integer.如何将其转换integerserial
我试过了:

ALTER TABLE my_table ALTER COLUMN id SET DATA TYPE bigint;
Run Code Online (Sandbox Code Playgroud)

但是相同的数据类型不适serial用于bigint.好像我无法转换为serial

postgresql ddl types auto-increment postgresql-9.3

7
推荐指数
1
解决办法
9100
查看次数