• ORA-01400: 无法将 NULL 插入 ("JXKH"."SYS_MENU"."MENU_ID")


    解决:
    为该表加上序列和触发器

    -- 菜单
    CREATE TABLE sys_menu (
      menu_id NUMBER(20, 0) NOT NULL,
      parent_id NUMBER(20, 0) NOT NULL,
      name varchar2(50),
      url varchar2(200),
      perms varchar2(500),
      type NUMBER(2, 0),
      icon varchar2(50),
      order_num NUMBER(8, 0),
      PRIMARY KEY (menu_id)
    );
    
    -- Create sequence
    create sequence SYS_MENU_SEQ
    minvalue 1    -- 最小值=1
    maxvalue 999999999999999999999999999  -- 指定最大值
    -- 或nomaxvalue      -- 没有最大值
    -- NOCYCLE;      -- 不循环
    start with 1   -- 从1开始
    increment by 1  -- 每次递增1
    cache 20;
    
    --触发器
    create or replace trigger SYS_MENU_TRI
      before insert on SYS_MENU
    REFERENCING OLD AS "OLD" NEW AS "NEW" FOR EACH ROW
    begin
        SELECT SYS_MENU_SEQ.NEXTVAL INTO :NEW.menu_id FROM DUAL;
    end;
    
  • 相关阅读:
    C++--第25课
    C++--第24课
    C++--第23课
    C++--第22课
    C++--第21课
    C++--第20课
    C++--第19课
    C++--第18课
    C++--第17课
    Windows程序设计学习笔记(1):一个简单的windows程序
  • 原文地址:https://www.cnblogs.com/sunyanblog/p/13100632.html
Copyright © 2020-2023  润新知