插件窝 干货文章 oracle设置默认值

oracle设置默认值

默认 DEFAULT 使用 employees 264    来源:    2025-04-23

Oracle 数据库设置默认值指南

在Oracle数据库中,您可以通过多种方式为列设置默认值。以下是详细的方法和示例:

1. 创建表时设置默认值

CREATE TABLE employees (
    employee_id NUMBER PRIMARY KEY,
    first_name VARCHAR2(50),
    last_name VARCHAR2(50),
    hire_date DATE DEFAULT SYSDATE,  -- 默认值为当前系统日期
    status VARCHAR2(20) DEFAULT 'ACTIVE',  -- 默认字符串值
    bonus NUMBER(10,2) DEFAULT 0,  -- 默认数字值
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP  -- 默认时间戳
);

2. 修改现有表添加默认值

ALTER TABLE employees 
MODIFY (status DEFAULT 'INACTIVE');

3. 使用DEFAULT关键字插入数据

INSERT INTO employees (employee_id, first_name, last_name, hire_date)
VALUES (1, 'John', 'Doe', DEFAULT);  -- 使用列的默认值

4. 特殊默认值

-- 使用序列作为默认值
CREATE SEQUENCE emp_seq START WITH 1 INCREMENT BY 1;

CREATE TABLE employees (
    employee_id NUMBER DEFAULT emp_seq.NEXTVAL PRIMARY KEY,
    -- 其他列...
);

-- 使用函数作为默认值
CREATE TABLE orders (
    order_id NUMBER PRIMARY KEY,
    order_date DATE DEFAULT SYSDATE,
    expected_ship_date DATE DEFAULT SYSDATE + 7  -- 7天后
);

5. 注意事项

  1. 默认值只在插入新行时应用,如果显式指定NULL,则不会使用默认值
  2. 修改列的默认值不会影响已存在的行
  3. 默认值必须与列的数据类型兼容
  4. 可以在DEFAULT子句中使用大多数SQL函数

6. 查看列的默认值

SELECT column_name, data_type, data_default
FROM user_tab_columns
WHERE table_name = 'EMPLOYEES';

通过合理使用默认值,可以简化数据插入操作并确保数据一致性。