为什么我收到错误消息?列数据类型是像序列值一样的整数...
SQL> create sequence SEQ_TEST_ID;
Sequence created.
SQL> desc test
Name Null? Type
----------------------------------------------------------------- -------- --------------------------------------------
VAL NUMBER(38)
D DATE
T VARCHAR2(4000)
N NUMBER(8,2)
S TIMESTAMP(6)
TEST_ID NUMBER(38)
PRIM_ID NUMBER(38)
SQL> ALTER TABLE TEST MODIFY (TEST_ID DEFAULT SEQ_TEST_ID);
ALTER TABLE TEST MODIFY (TEST_ID DEFAULT SEQ_TEST_ID)
*
ERROR at line 1:
ORA-02262: ORA-904 occurs while type-checking column default value expression
更改表出现错误
您需要修改的是列而不是顺序,而是他的nexe值
SEQ_TEST_ID.nextval
每次插入一行时,它都会创建一个新值。
如果你的表已经有行,你首先需要更新列TEST_ID
create sequence SEQ_TEST_ID;
CREATE tABLE TEST (TEST_ID NUMBER(30))
ALTER TABLE TEST
MODIFY TEST_ID INT DEFAULT SEQ_TEST_ID.nextval;