尝试在 Oracle Sql 中将列值更改为默认值时标识符无效
Posted
技术标签:
【中文标题】尝试在 Oracle Sql 中将列值更改为默认值时标识符无效【英文标题】:invalid identifier when trying to alter column value to default in Oracle Sql 【发布时间】:2017-01-05 20:08:32 【问题描述】:我已经创建了这个序列
CREATE SEQUENCE stud_seq
START WITH 1000
INCREMENT BY 1
MAXVALUE 99999
NOCACHE
NOCYCLE;
我有这张桌子叫student
Name Null Type
-------------------- -------- -------------
CODS NOT NULL NUMBER(5)
NUME NOT NULL VARCHAR2(50)
PREN NOT NULL VARCHAR2(50)
CODS 是主键。
我正在尝试这样做
ALTER TABLE student ADD CONSTRAINT student_cods_df DEFAULT stud_seq.nextval FOR cods;
我得到一个错误
SQL Error: ORA-00904: : invalid identifier
00904. 00000 - "%s: invalid identifier"
你能告诉我有什么问题吗?谢谢。
如果有人想知道,我正在使用 SQL Developer。
【问题讨论】:
您的 Oracle 版本是多少?这仅适用于 Oracle 12 或更高版本 【参考方案1】:你的语法有一些问题;你可能需要:
ALTER TABLE student modify cods DEFAULT stud_seq.nextval
请注意,您可以从 Oracle 12c 开始使用它;如果您需要不同版本的解决方案,您会在SO 中找到很多答案;除其他外,您可能想看看this
【讨论】:
以上是关于尝试在 Oracle Sql 中将列值更改为默认值时标识符无效的主要内容,如果未能解决你的问题,请参考以下文章
只要新值与当前值不同,Oracle SQL 将字段的值更改为列表中的其他值?