从另一个表和标识列
问题描述:
我通常使用这个代码从现有表创建一个新表创建Oracle SQL表:从另一个表和标识列
CREATE TABLE TABLE_NEW
AS
SELECT 'TEST' AS TEST_COLUMN,
PRS_ID AS TABLE_ID
FROM TABLE_OLD
如何插入标识列到TABLE_NEW。所以我将在TABLE_NEW,ID,TEST_COLUMN和TABLE_ID中有3列?
ID可以被定义为
[ID] [int] IDENTITY(1,1) NOT NULL,
谢谢!
答
先创建表格。
使用顺序,您可以创建一个这样的:
CREATE SEQUENCE myseq
START WITH 1
INCREMENT BY 1
NOCACHE
NOCYCLE;
然后使用:
INSERT INTO table2 (col1, col2, col3)
SELECT myseq.nextval, foo1, foo2
FROM table1
我得到这个错误: “ORA-02287:此处不允许序列号”。错误是在myseq.nextval行 – 2014-09-26 21:01:03
谢谢彼得。插入的问题是表格非常宽 - 122列。我将不得不重写很多代码。 作为一个临时修复,我只是运行一个ALTER TABLE命令并在那里使用myseq.nextval。它不是很好的代码,但它现在起作用。 – 2014-09-26 21:23:04
太棒了!周末愉快! – 2014-09-26 21:24:28