簡體   English   中英

將數據從一個表插入到另一個表並添加新值

[英]Insert Data From One Table to Another Table and Add New Values

我有兩張桌子。 臨時表:

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在臨時表中不存在...

我該怎么辦?

希望我正確理解你的問題。 我認為下面的查詢會有所幫助。

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語句中生成訂單號。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM