我有两个表。 临时表:将数据从一个表插入另一个表并添加新值
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表以及与此手动添加订单编号:uniqid(rand())
。
我使用INSERT INTO orders SELECT * FROM temporary WHERE FK_user = ?
但由于订单编号不临时表存在,他们没有工作......
我可怎么办?请
我在那里看不到问题。只需在选择的INSERT INTO ORDERS(id,FK_user,FK_bin,orderNumer,orderDate)上指定列即可。SELECT t.id,t.FK_user,t.FK_bin,UUID()as orderNumber,t.orderDate from temporary t;' – Rumpelstinsk
不要使用'SELECT *'。在insert into和select语句中提及每个列名... – Naga