将数据从一个表复制到MYSQL中的另一个表中

时间:2012-03-21 00:43:55

标签: mysql sql database

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;

我使用select语句获取所有记录并将其存储到另一个数据库中,问题是,delete_subscriber中有更多列,这意味着有一列例如删除日期,删除不在订户表中的人。

如何在一个sql语句中添加它们?或者我必须使用另一个声明? 但是,如果我尝试后一种方法,问题是删除日期,删除人不是空,我不能使用第一个语句插入部分记录

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 :(得分:0)

你可以改变delete_subscriber表集删除日期,在insert之前删除person default null。从select查询中填充数据后再次修改它们,而不是null。

答案 1 :(得分:0)

将插入语句更改为

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;