我有两张 table 。 临时表:
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;
我想将临时表的所有值插入到 Orders 表中,并使用以下命令手动添加 orderNumber:uniqid(rand())
。
我使用了 INSERT INTO orders SELECT * FROM temporary WHERE FK_user = ?
但是它们不起作用,因为临时表中不存在 orderNumber ...
我该怎么做?请
最佳答案
希望我能正确理解您的问题。我认为以下查询会有所帮助。
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 语句中生成订单号。
关于php - 将数据从一个表插入到另一个表并添加新值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42200799/