Oracle
在更改列時在 Oracle 中添加預設約束
我是甲骨文的新手。我需要將 SQL Server 命令移植到 Oracle。
我想更改一列以添加具有預設值的新約束。
SQL 伺服器命令
ALTER TABLE <schema_name>.<table_name> ADD CONSTRAINT [<constraint_name>] DEFAULT (1) FOR [<column_name>]
甲骨文命令
ALTER TABLE <table_name> ADD CONSTRAINT <constraint_name> DEFAULT (1) FOR <column_name>
執行 Oracle 查詢時出現以下錯誤:
Error report - SQL Error: ORA-00904: : invalid identifier 00904. 00000 - "%s: invalid identifier" *Cause: *Action:
可能是因為
FOR
是無效的標識符?但是,如何為特定列添加具有預設值的約束?
我們是否需要更改列並設置預設值?
哪種方法是正確的?
預設值不是 Oracle 中的約束。您只需將列更改為:
SQL> create table tab1 (col1 number, col2 number); Table created. SQL> alter table tab1 modify (col2 default 1); Table altered. SQL> select * from user_constraints; no rows selected SQL> insert into tab1 (col1) values (0); 1 row created. SQL> select * from tab1; COL1 COL2 ---------- ---------- 0 1