Script – List status of all submitted DBMS jobs(转)

Script. – List status of all submitted DBMS jobs

set pagesize 100 set linesize 120 ttitle - center 'Submitted DBMS Jobs' skip 2 col job format 99999 heading 'job#' col subu format a10 heading 'Submitter' trunc col lsd format a5 heading 'Last|Ok|Date' col lst format a5 heading 'Last|Ok|Time' col nrd format a5 heading 'Next|Run|Date' col nrt format a5 heading 'Next|Run|Time' col fail format 999 heading 'Errs' col ok format a2 heading 'Ok' select job, log_user subu, what proc, to_char(last_date,'MM/DD') lsd, substr(last_sec,1,5) lst, to_char(next_date,'MM/DD') nrd, substr(next_sec,1,5) nrt, failures fail, decode(broken,'Y','N','Y') ok from sys.dba_jobs;

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7734298/viewspace-703513/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/7734298/viewspace-703513/

<think>嗯,用户想了解如何增加一个“status”字段。首先,我需要明确这个“status”字段是用于什么场景的。可能是在数据库设计、应用程序中的对象模型,或者是API响应中添加状态信息?不同的场景会有不同的考虑因素。 假设是在数据库表中增加字段的话,需要考虑数据类型,比如是字符串还是枚举类型,是否需要默认值,是否允许为空,以及索引需求等。如果是应用程序中的模型类,可能需要添加相应的属性和验证逻辑。对于API,可能需要更新文档,确保前后端兼容。 然后,用户可能有更具体的需求,比如状态字段的可能取值有哪些,是否需要国际化支持,或者状态变化的流程(比如工作流状态机)。此外,还要考虑权限控制,哪些用户可以修改状态,以及状态变更时是否需要触发其他操作,比如发送通知或日志记录。 可能还需要考虑现有数据如何处理,新增字段后是否需要数据迁移,或者设置默认状态。如果是分布式系统,还要注意数据库迁移脚本和版本控制,避免服务中断。 需要进一步询问用户具体的应用场景和技术栈,才能给出更准确的建议。不过根据通用情况,先整理一个基本的步骤,涵盖常见的注意事项,比如字段类型、约束、默认值、索引、文档更新等。同时提醒用户根据实际需求调整,比如状态枚举值或相关业务逻辑的实现。</think>在系统设计和开发中,增加 `status` 字段通常是为了跟踪数据状态的变化。以下是分步说明和关键注意事项: --- ### **1. 明确字段用途** - **作用**:记录数据生命周期(如`未处理/处理中/已完成`)、业务状态(如`有效/过期`)或操作状态(如`成功/失败`) - **示例**: - 订单系统:`pending`, `paid`, `shipped`, `cancelled` - 任务队列:`queued`, `running`, `failed`, `retrying` --- ### **2. 选择字段类型** - **字符串(String)**:适合可读性要求高的场景 ```sql ALTER TABLE orders ADD status VARCHAR(20) NOT NULL DEFAULT 'pending'; ``` - **枚举(Enum)**:限制取值范围,保证数据一致性 ```sql CREATE TYPE task_status AS ENUM ('queued', 'running', 'completed'); ALTER TABLE tasks ADD status task_status; ``` - **整数(Integer)**:优化存储和查询效率(需维护映射关系) ```java // 代码中定义状态常量 public static final int STATUS_DRAFT = 0; public static final int STATUS_PUBLISHED = 1; ``` --- ### **3. 设置约束条件** - **非空约束**:`NOT NULL` - **默认值**:`DEFAULT 'initial_status'` - **外键关联**:复杂场景可单独建状态表 ```sql CREATE TABLE statuses ( id INT PRIMARY KEY, name VARCHAR(50) UNIQUE ); INSERT INTO statuses VALUES (1, 'active'), (2, 'archived'); ALTER TABLE users ADD status_id INT REFERENCES statuses(id); ``` --- ### **4. 索引优化** - 高频查询字段建议加索引: ```sql CREATE INDEX idx_order_status ON orders(status); ``` --- ### **5. 业务逻辑适配** - **状态流控制**:通过状态机限制非法变更 ```python # 示例:状态机验证 ALLOWED_TRANSITIONS = { 'draft': ['submitted', 'deleted'], 'submitted': ['approved', 'rejected'] } def change_status(old, new): if new not in ALLOWED_TRANSITIONS.get(old, []): raise InvalidStateTransitionError() ``` - **审计追踪**:记录状态变更历史 ```sql CREATE TABLE status_history ( id SERIAL PRIMARY KEY, record_id INT, old_status VARCHAR(20), new_status VARCHAR(20), changed_at TIMESTAMP ); ``` --- ### **6. 文档与兼容性** - **API文档**:更新接口的请求/响应示例 ```json { "id": 123, "title": "Task 1", "status": "completed" } ``` - **数据迁移**:对已有数据设置初始状态 ```sql UPDATE historical_orders SET status = 'archived' WHERE created_at < '2020-01-01'; ``` --- ### **典型应用场景** | 场景 | 状态值示例 | |--------------------|-----------------------------| | 用户账户管理 | `active`, `locked`, `deleted` | | 工单系统 | `open`, `in_progress`, `closed` | | 支付系统 | `unpaid`, `paid`, `refunded` | --- ### **注意事项** 1. **原子性操作**:状态变更需保证事务一致性 2. **国际化**:多语言系统建议存储状态码而非直接文本 3. **性能影响**:高频更新字段需评估锁竞争问题 需要根据具体业务需求调整实现细节。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值