我有一个包含一些重复行的表,我想将其标准化为 2 个表。
user | url | keyword
-----|-----|--------
fred | foo | kw1
fred | bar | kw1
sam | blah| kw2
我想首先将其规范化为两个表(user 和 url_keyword)。是否可以运行一个查询来规范化它,或者我是否需要使用脚本循环遍历表来构建表?
最佳答案
你可以通过一些查询来完成它,但我对 postgreSQL 不熟悉。首先创建一个用户表,其中包含一个标识列。还将列 userID 添加到现有表中:
然后是这样的:
INSERT INTO users (userName)
SELECT DISTINCT user FROM url_keyword
UPDATE url_keyword
SET userID=(SELECT ID FROM users WHERE userName=user)
然后您可以删除旧的用户列,创建外键约束等。
关于postgresql - 将具有重复项的表拆分为 2 个标准化表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1310103/