0

我想复制一个表 (bids_accepted) 的全部内容,并通过将表中的所有行放入 archive_bids_accepted 表来归档它。除了archive_bids_accepted 表有一个额外的列(第一列)来为整个出价集提供一个唯一ID(在前面的步骤中创建)之外,这些表完全相同。

执行此操作的正确 MySQL 语法是什么?我认为它很接近,但无法正确使用语法。

// gets the unique ID
long id = DBUtil.executeInsert("INSERT INTO archive (create_username,create_ts,update_username,update_ts) VALUES('', NOW(),'',NOW())");

// MySQL syntax causing problems
String sql = "INSERT INTO archive_bids_accepted VALUES(" + id + ",select * from bids_accepted)";

// Also tried this
String sql = "INSERT INTO archive_bids_accepted " + id + ",select b.* from bids_accepted b";
4

1 回答 1

0

我不会尝试手动插入id. 只需让 MySQL 为您执行此操作AUTOINCREMENT

CREATE TABLE archive
(
  Id int AUTOINCREMENT,
  create_username <datatype>,
  create_ts <datatype>,
  update_username <datatype>,
  update_ts <datatype>
)

然后执行以下SQL:

INSERT INTO archive_bids_accepted 
  (create_username, create_ts, update_username, update_ts)
SELECT create_username, create_ts, update_username, update_ts 
FROM bids_accepted

Id字段将自动填写。

于 2013-03-04T19:10:16.240 回答