相关疑难解决方法(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万
查看次数

安全,干净地重命名在Postgres中使用串行主键列的表?

我知道使用SERIAL主键的PostgreSQL表最终会有一个由PostgreSQL创建的隐式索引,序列和约束.问题是在重命名表时如何重命名这些隐式对象.下面是我尝试在最后通过具体问题解决这个问题.

给出一个像这样的表

CREATE TABLE foo (
    pkey SERIAL PRIMARY KEY,
    value INTEGER
);
Run Code Online (Sandbox Code Playgroud)

Postgres输出

CREATE TABLE foo (
  pkey serial NOT NULL,
  value integer,
  CONSTRAINT foo_pkey PRIMARY KEY (pkey )
);
ALTER TABLE foo OWNER TO postgres;
Run Code Online (Sandbox Code Playgroud)

PgAdmin III显示以下作为表的DDL

ALTER table foo RENAME TO bar;
Run Code Online (Sandbox Code Playgroud)

现在重命名表

CREATE TABLE bar (
  pkey integer NOT NULL DEFAULT nextval('foo_pkey_seq'::regclass),
  value integer,
  CONSTRAINT foo_pkey PRIMARY KEY (pkey )
);
ALTER TABLE bar OWNER TO postgres;
Run Code Online (Sandbox Code Playgroud)

Postgres输出

ALTER SEQUENCE foo_pkey_seq RENAME TO bar_pkey_seq;
Run Code Online (Sandbox Code Playgroud)

表格的PgAdmin III …

sql postgresql ddl database-design

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

获取表和列"拥有"序列

我可以运行以下行:

ALTER SEQUENCE seqName OWNED BY table.id;
Run Code Online (Sandbox Code Playgroud)

如何OWNED BY为序列设置"所有者" (在这种情况下:) table.id

postgresql database-design

12
推荐指数
2
解决办法
8649
查看次数

使用Grails进行Hibernate和postgreSQL

有一种简单的方法可以将hibernate设置为使用postgres为每个表使用不同的主键ID吗?我试图在DataSource中使用postgres方言:

dialect = org.hibernate.dialect.PostgreSQLDialect 
or
dialect = net.sf.hibernate.dialect.PostgreSQLDialect
Run Code Online (Sandbox Code Playgroud)

但它不起作用.谢谢

postgresql grails hibernate primary-key

6
推荐指数
1
解决办法
3449
查看次数