Oracle - 带有生成的主键的 INSERT 语句
Oracle - INSERT statement with generated primary key
我有一个包含许多列(20 或 25)的 table,我想在其上构建一个插入语句,使用 select 并生成另一个主键
简单的解决方案是:
INSERT INTO myTable
SELECT mySeq.nextVal PRIMARY_KEY, COLUMN2, COLUMN3, COLUMN4...
FROM myTable
WHERE PRIMARY_KEY = 1
因为我的table有很多列,有没有办法不用解释就说"i give you primary key, and ALL the other columns are the same"?
喜欢:
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
无法指定 SELECT * EXCEPT aColumn
之类的内容,您必须像之前那样手动编写它们,抱歉。
实际上,您可以对 table 信息中的 select 列执行子查询,然后查询该子查询,但这对我来说毫无意义。
如果您的 table 包含太多列,以至于很难将它们全部写入,那么您可能需要重新设计数据库并将 table 拆分为多个 tables.
我有一个包含许多列(20 或 25)的 table,我想在其上构建一个插入语句,使用 select 并生成另一个主键
简单的解决方案是:
INSERT INTO myTable
SELECT mySeq.nextVal PRIMARY_KEY, COLUMN2, COLUMN3, COLUMN4...
FROM myTable
WHERE PRIMARY_KEY = 1
因为我的table有很多列,有没有办法不用解释就说"i give you primary key, and ALL the other columns are the same"?
喜欢:
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
无法指定 SELECT * EXCEPT aColumn
之类的内容,您必须像之前那样手动编写它们,抱歉。
实际上,您可以对 table 信息中的 select 列执行子查询,然后查询该子查询,但这对我来说毫无意义。
如果您的 table 包含太多列,以至于很难将它们全部写入,那么您可能需要重新设计数据库并将 table 拆分为多个 tables.