Копирование таблицы базы данных - PullRequest
0 голосов
/ 30 апреля 2010

Я пытаюсь исправить предыдущее создание базы данных с таблицами, которые содержат данные, которые должны быть сохранены. Вместо того, чтобы воссоздавать совершенно новую базу данных, поскольку некоторые таблицы все еще можно использовать повторно, мне нужно разбить существующую таблицу на две новые таблицы, которые я сделал. Сейчас я пытаюсь вставить данные в две новые таблицы, и из-за дублирования данных в старой таблице мне трудно это сделать.

Старая структура таблицы:

ClientProjects   clientId PK
                 clientName 
                 clientProj
                 hashkey    MD5 (clientname and clientProj)

новые структуры таблиц:

client           clientId PK
                 clientName

projects         queryId   PK
                 clientId  PK
                 projectName 

Надеюсь, это имеет смысл. Проблема в том, что в старой таблице, например, у вас есть клиенты с несколькими clientIds.

1 Ответ

1 голос
/ 30 апреля 2010

Предполагая, что ваше clientName уникально, вы могли бы что-то вроде:

INSERT client (clientId, clientName)
    SELECT MAX(clientID), clientName FROM oldTable GROUP BY clientName;

INSERT project (clientId, projectName)
    SELECT n.clientId, o.projectName from client n
        INNER JOIN oldTable o on o.clientName = n.clientName;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...