2

我有一个包含一些重复行的表,我想将它们规范化为 2 个表。

user | url | keyword
-----|-----|--------
fred | foo | kw1
fred | bar | kw1
sam  | blah| kw2

我想首先将其规范化为两个表(用户和 url_keyword)。有没有可以运行的查询来规范化这个,或者我是否需要使用脚本遍历表来构建表?

4

1 回答 1

4

您可以通过一些查询来完成,但我不熟悉 postgreSQL。首先创建一个表 users,其中包含一个标识列。还要在现有表中添加一列 userID:

然后沿着这些思路:

INSERT INTO users (userName)
    SELECT DISTINCT user FROM url_keyword

UPDATE url_keyword
    SET userID=(SELECT ID FROM users WHERE userName=user)

然后您可以删除旧的用户列,创建外键约束等。

于 2009-08-21T05:03:15.050 回答