黑帽联盟

 找回密码
 会员注册
查看: 1299|回复: 0
打印 上一主题 下一主题

[oracle] oracle建表,id自动增长

[复制链接]

852

主题

38

听众

3176

积分

白金VIP

Rank: 8Rank: 8

  • TA的每日心情
    开心
    2024-3-7 12:52
  • 签到天数: 1538 天

    [LV.Master]伴坛终老

    SQL> CREATE SEQUENCE test_sequence2
      2    increment by 1    -- 每次递增1
      3    start with 1       -- 从1开始
      4    nomaxvalue      -- 没有最大值
      5    minvalue 1       -- 最小值=1
      6    NOCYCLE;      -- 不循环

    Sequence created.

    SQL> CREATE TABLE test_create_tab2 (
      2    id   INT,
      3    val  VARCHAR(10),
      4    PRIMARY KEY (id)
      5  );

    Table created.

    SQL> CREATE OR REPLACE TRIGGER BeforeTestCreate2Insert
      2    BEFORE INSERT ON test_create_tab2
      3  FOR EACH ROW
      4  BEGIN
      5    SELECT test_sequence2.nextval INTO :new.id  FROM dual;
      6  END;
      7  /

    Trigger created.

    SQL> INSERT INTO test_create_tab2(val) VALUES ('NO id');

    1 row created.

    SQL> INSERT INTO test_create_tab2(id, val) VALUES (1, 'id no use');

    1 row created.

    SQL> SELECT * FROM test_create_tab2;

            ID VAL
    ---------- --------------------
             1 NO id     
             2 id no use


    用于 MySQL 的语法
    下列 SQL 语句把 "Persons" 表中的 "P_Id" 列定义为 auto-increment 主键:
    CREATE TABLE Persons
    (
    P_Id int NOT NULL AUTO_INCREMENT,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Address varchar(255),
    City varchar(255),
    PRIMARY KEY (P_Id)
    )
    //接在建表语句后面AUTO_INCREMENT = 100;(ID列从100开始自增)
    MySQL 使用 AUTO_INCREMENT 关键字来执行 auto-increment 任务。
    默认地,AUTO_INCREMENT 的开始值是 1,每条新记录递增 1。
    要让 AUTO_INCREMENT 序列以其他的值起始,请使用下列 SQL 语法:
    ALTER TABLE Persons AUTO_INCREMENT=100

    要在 "Persons" 表中插入新记录,我们不必为 "P_Id" 列规定值(会自动添加一个唯一的值):
    INSERT INTO Persons (FirstName,LastName)
    VALUES ('Bill','Gates')
    上面的 SQL 语句会在 "Persons" 表中插入一条新记录。"P_Id" 会被赋予一个唯一的值。"FirstName" 会被设置为 "Bill","LastName" 列会被设置为 "Gates"。

    DB2中是这样写的
    Create table FA_EXCEPTION_LOG (
        ID                             INTEGER             NOT NULL   
            generated by default as identity (start with 1, increment by 1, cache 20),
        ORG_ID                         DECIMAL(10,0)                   ,
        USER_ID                        DECIMAL(10,0)                   ,
        REC_DATETIME                   VARCHAR(22)                     ,
        CODE                           VARCHAR(50)                     ,
        CLS                            VARCHAR(20)                     ,
        MODULAR                        VARCHAR(40)                     ,
        DESCN                          VARCHAR(200)                    ,
        JAVA_EXCE                      VARCHAR(256)                    ,
        ERR_MSG                        VARCHAR(1000)                   )
    tablespace TSPCAP4J01   ;

    帖子永久地址: 

    黑帽联盟 - 论坛版权1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关
    2、本站所有主题由该帖子作者发表,该帖子作者与黑帽联盟享有帖子相关版权
    3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和黑帽联盟的同意
    4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
    5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
    6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
    7、黑帽联盟管理员和版主有权不事先通知发贴者而删除本文

    勿忘初心,方得始终!
    您需要登录后才可以回帖 登录 | 会员注册

    发布主题 !fastreply! 收藏帖子 返回列表 搜索
    回顶部