我有一个包含许多列(20或25)的表,我想在其上构建一个insert语句,使用select并生成另一个主键
简单的解决方案将是:
INSERT INTO myTable
SELECT mySeq.nextVal PRIMARY_KEY, COLUMN2, COLUMN3, COLUMN4...
FROM myTable
WHERE PRIMARY_KEY = 1
由于我的表有很多列,所以有一种方法可以说"我给你主键,所有其他列都是相同的"没有解释他们?
像:
INSERT INTO myTable
SELECT mySeq.nextVal m.* /* Sure this not work because i get again PRIMARY_KEY column*/
FROM myTable m
WHERE PRIMARY_KEY = 1
答案 0 :(得分:2)
无法指定SELECT * EXCEPT aColumn
之类的内容,您必须像以前一样手动编写它们,抱歉。
实际上,您可以执行一个子查询,从表信息中选择列然后查询该子查询,但这对我来说没有意义。
如果你的表包含这么多列,那么将它们全部写下来很麻烦,那么你可能想重新设计数据库并将表拆分成多个表。