尝试在 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 中将列值更改为默认值时标识符无效的主要内容,如果未能解决你的问题,请参考以下文章

在while循环中将布尔值更改为true? C++

使用 SQL 中的巧妙语句以连续方式将列值更改为多条记录

只要新值与当前值不同,Oracle SQL 将字段的值更改为列表中的其他值?

如果下拉列值更改为某个值,则动态禁用TextBoxFor

使用 np.where() 在 pandas 数据框中将 True/False 值更改为离散值

React-Admin 在 SelectInput 中将值更改为自定义值