将数据从一个表插入另一个表并添加新值

时间:2017-02-13 09:34:18

标签: php mysql sql database sql-insert

我有两张桌子。 临时表:

CREATE TABLE IF NOT EXISTS `temporary` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `FK_user` int(11) NOT NULL,
  `FK_bin` varchar(50) NOT NULL,
  `orderDate` datetime NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=35 ;

订单表:

CREATE TABLE IF NOT EXISTS `orders` (
  `id` int(11) NOT NULL,
  `FK_user` int(11) NOT NULL,
  `FK_bin` varchar(50) NOT NULL,
  `orderNumber` varchar(11) NOT NULL,
  `orderDate` datetime NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

我想将Temporary表的所有值插入Orders表并手动添加orderNumber:uniqid(rand())

我使用INSERT INTO orders SELECT * FROM temporary WHERE FK_user = ? 但它们不起作用,因为临时表中不存在orderNumber ...

我该怎么办?请

1 个答案:

答案 0 :(得分:4)

希望我能正确理解你的问题。我认为下面的查询会有所帮助。

INSERT INTO orders(id , FK_user , FK_bin , orderNumber , orderDate) 
(SELECT id , FK_user , FK_bin , uniqid(rand()) AS orderNumber , orderDate 
 FROM temporary WHERE FK_user = ?);

使用您的函数在select语句中生成订单号,如上面的查询中所述。