两个问题:
1)
有几个表用作其他表的存档 为此,有一个
INSERT INTO data_archive_table (SELECT * FROM data_table)
问题是data_table.id
应保留为data_archive_table.old_id
有没有办法编写一个看起来像SELECT *, id AS old_id FROM data_table
的查询,而结果列只有old_data
列,而不是原来的id
列?
使用所有列名是我看到的唯一选项,但我更愿意避免使用它。
2)
我想在插入查询中添加一个名为deleted_time
的虚拟列,它将保留当前时间
可以吗?如果是这样 - 怎么样?(教程会很棒)
答案 0 :(得分:0)
试试这个:
1。)您可以使用类似此查询的内容:
INSERT INTO data_archive_table
SELECT id AS old_id -- be sure that data_archive_table has column oldID
,... -- You need to specify the names of the columns
FROM data_table
WHERE id = 'IDHERE' -- If you want to have condition.
2。)为此,您可以直接在select语句中添加值
INSERT INTO `tableName`
SELECT colA,
colB,
, ...
, NOW() as deleted_time -- NOW() is a function in MySQL
FROM `sourceTable`
WHERE colA = 'IDHERE' -- If you want to have condition.