【发布时间】:2017-02-13 09:34:18
【问题描述】:
我有两张桌子。 临时表:
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;
我想将临时表的所有值插入订单表并手动添加 orderNumber:uniqid(rand())。
我用过INSERT INTO orders SELECT * FROM temporary WHERE FK_user = ?
但是它们不起作用,因为临时表中不存在 orderNumber ...
我该怎么办?请
【问题讨论】:
-
我没有看到问题所在。只需指定选择
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;上的列 -
不要使用
SELECT *。在 insert into 和 select 语句中提及每个列名...
标签: php mysql sql database sql-insert