2012-04-04 52 views
0

我更新了我的程序处理罚款和收费的方式,现在我需要将旧数据传输/迁移到新格式。过去工作的方式是罚款/费用存储在用户记录的一个字段中。现在有一个全新的表格用于跟踪每次充电。我想简单地将该费用字段和1条记录带到费用表中。mysql传输查询

User table: id as INT, name as VARCHAR, charges as DECIMAL(10, 2) 
Charge Table: id as INT, user_id as INT, amount as DOUBLE, type as INT, date_applied as DATETIME, description as VARCHAR 

可以说我有一个用户记录:(id => 1, name => 'john doe', charges => 4.20)并希望该转移到的

(id => 1, user_id => 1, amount => 4.20, type => 1, date_applied => (whatever time the transfer is taking place), description => 'Initial balance') 

收费记录我怎样才能做一个SQL查询这一次转移?我宁愿不写这个一次性交易的PHP脚本。

回答

2

这应该做你想做的。

INSERT INTO `Charge Table` SELECT NULL, id, charges, 1, NOW(), 'Initial balance' FROM `User Table` 
+0

因此,如果我理解正确,这应该工作? (SELECT,NULL,id,fines,null,'Initial balance',NOW(),1 FROM'patrons') – LordZardeck 2012-04-04 18:08:21

+0

实际上,那没有。我试过了,并且在'SELECT NULL,id,fines,null, – LordZardeck 2012-04-04 18:15:03

+0

'附近出现错误,不需要'VALUES'或者parens。你可以只是'INSERT INTO账单(id,patron_id,amount,item_id,description,date_charged,type)SELECT NULL,id,fines,null,'Initial balance',NOW(),1 FROM patrons' – 2012-04-04 18:15:51