У меня есть две таблицы:Получить Дубликаты и обновление столбца в другой таблице SQL
Стихи:
---------------------------------------------------
| id | poem | author |
---------------------------------------------------
| 1 | Blah blah Hey | Jane Doe |
---------------------------------------------------
| 1 | Yo yo Hey Bla | Jane Doe |
---------------------------------------------------
Авторы:
-----------------------------
| id | name |
-----------------------------
| 0 | |
-----------------------------
Я хочу, чтобы удалить дубликаты из таблицы стихов и заполнить таблицу вновь созданных авторов. В идеале я хотел бы, чтобы затем обновить автор (или создать новый authors_id) столбец в таблице стихов с author.id
Я знаю, что следующий код показывает мне дубликаты,
SELECT author, COUNT(*)
FROM poem
GROUP BY author
HAVING
COUNT(*) > 1
Но как добавить их в столбец author.names?
Также будет ли этот код помогать мне со следующей частью?
ALTER TABLE poem
ADD COLUMN author_id serial,
ADD CONSTRAINT author_id FOREIGN KEY (id) REFERENCES author (id) MATCH FULL;
Любые идеи?
Определяется как серийный номер! Я должен был, наверное, упомянуть об этом. Любая идея, как определить авторов в столбце poem.author как внешний ключ, а затем повторно заполнить его с помощью poem.id? Либо это, либо создайте новый столбец poem.author_id и заполните его таким образом ... – joshuar500
Ах, да, я вижу эту ошибку. Что бы это было нужно тогда как внешний ключ. Int? – joshuar500
Я добавил пример SQLFiddle. Обратите внимание, что ваш 'add foreign key' был неправильным. –