我有兩個表。 臨時表:將數據從一個表插入另一個表並添加新值
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