sql - 使用触发器 SQL 自动填充列

标签 sql database oracle triggers

我正在尝试启动一个序列,该序列会在插入后自动填充列。它应该从 500 开始并递增 1。知道我该怎么做吗?到目前为止我有这样的东西,但它似乎崩溃了

CREATE TRIGGER ADD_TRIGGER ON tablename
AFTER INSERT
AS
BEGIN
    ADD colname NUMBER IDENTITY(500,1);
END
GO

最佳答案

你可以创建一个序列

CREATE SEQUENCE mySeq
  START WITH 500
  INCREMENT BY 1
  CACHE 100;

然后在你的触发器中使用它

CREATE OR REPLACE TRIGGER myTrigger
  AFTER INSERT ON table_name
  FOR EACH ROW
BEGIN
  SELECT mySeq.nextval
    INTO :new.colname 
    FROM dual;
END;

关于sql - 使用触发器 SQL 自动填充列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32989921/

相关文章:

sql - 在 sequelize 中,如何选择与我正在搜索的所有值匹配的记录?

mysql - 为什么 InnoDB 不支持全文搜索索引,而 MyISAM 支持全文搜索索引?

php - 多个(更少)插入到三列表与存储在单列中 Php-Mysql

java - 如何避免通过 Java 在数据库中重复插入?

sql - 来自 csv 文件的 PostgreSQL 查询

sql - Excel ODBC 数据连接查询刷新每个查询所需的时间

database - 导出特定行,包括不带 DDL 的 CLOB

mysql - 如何在 MySQL 中不排序的情况下获取表中记录的第一行?

java - Oracle 11g 数据库中不同 session 的相同 SQL_ID

java - 在 Oracle ADF 中使用 EAR 文件设置应用程序