oracle 创建的自增序列,无法在建表语句中使用,报错ORA-00984: column not allowed here
时间: 2024-02-03 22:12:59 浏览: 215
oracle自增序列
在 Oracle 中,如果要使用自增序列,需要使用序列对象来实现。建表语句中无法直接使用序列对象,应该使用触发器来实现。
以下是一个示例代码,演示如何在建表时创建触发器来实现自增序列:
```
CREATE SEQUENCE seq_name START WITH 1 INCREMENT BY 1;
CREATE TABLE table_name (
id NUMBER(10) PRIMARY KEY,
name VARCHAR2(50)
);
CREATE OR REPLACE TRIGGER trigger_name
BEFORE INSERT ON table_name
FOR EACH ROW
BEGIN
SELECT seq_name.NEXTVAL INTO :NEW.id FROM DUAL;
END;
/
```
其中,`seq_name` 是自定义的序列名称,`table_name` 是表名,`trigger_name` 是触发器名称。触发器会在每次向表中插入数据时自动调用,将序列值赋给 id 字段。这样就可以实现自增序列的功能了。
阅读全文