【发布时间】:2014-07-09 00:06:23
【问题描述】:
我的 Postgres 数据库中有以下两个表:
CREATE TABLE User (
Id serial UNIQUE NOT NULL,
Login varchar(80) UNIQUE NOT NULL,
PRIMARY KEY (Id,Login)
);
CREATE TABLE UserData (
Id serial PRIMARY KEY REFERENCES Users (Id),
Password varchar(255) NOT NULL
);
假设我添加了一个新用户INSERT INTO Users(Id, Login) VALUES(DEFAULT, 'John'),并且还想在UserData 中添加VALUES(id, 'john1980'),其中id 是John 的新ID。
我如何获得该 ID?对刚刚创建的东西运行查询似乎是多余的。我在整个数据库中有多种这样的情况。也许我的设计总体上存在缺陷?
(我显然不会那样存储密码。)
【问题讨论】:
标签: sql postgresql database-design primary-key common-table-expression