Скопируйте данные из одной таблицы в другую в MYSQL - PullRequest
0 голосов
/ 21 марта 2012
INSERT INTO delete_subscriber (SubID,RandomCode,Email,FirstName,LastName,CreateDate,UpdateDate) 
SELECT subscriber.* 
FROM subscriber, list_sub 
WHERE ListID=? AND list_sub.SubID=subscriber.SubID;

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

Как я могу добавить их в одной инструкции sql?Или я должен использовать другое утверждение?Но если я попробую последний метод, проблема в том, что дата удаления, удаляемый человек не пустые, я не могу вставить частичную запись, используя 1-е утверждение

INSERT INTO delete_subscriber (SubID,RandomCode,Email,FirstName,LastName,CreateDate,UpdateDate,DeleteDate,DeletePerson) 
SELECT s.SubID,s.RandomCode,s.Email,s.FirstName,s.LastName,s.CreateDate,s.UpdateDate,NOW(),?
FROM subscriber s , list_sub
WHERE list_sub.ListID=? AND list_sub.SubID=s.SubID;

Я могу запустить ее на sql, но не на php pdo?я обнаружил, что не делал транзакции

Ответы [ 2 ]

0 голосов
/ 21 марта 2012

Измените свой оператор вставки на

INSERT INTO delete_subscriber        
(SubID,RandomCode,Email,FirstName,LastName,
CreateDate,UpdateDate,DeleteDate,DeletingPerson) 
 SELECT     s.SubID,s.RandomCode,s.Email,s.FirstName,s.LastName,
s.CreateDate,s.UpdateDate,NOW(),?
 FROM subscriber s , list_sub
WHERE list_sub.ListID=? AND list_sub.SubID=s.SubID;
0 голосов
/ 21 марта 2012

Вы можете изменить таблицу удаления delete_subscriber, установить дату удаления, удалить человека по умолчанию, равным null, перед вставкой. И после заполнения данных в запросе на выбор снова изменить их как предыдущий, а не NULL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...