# abacus_state

## Description

<details>
<summary><strong>Table Definition</strong></summary>

```sql
CREATE TABLE `abacus_state` (
  `abacus_state_id` mediumint unsigned NOT NULL AUTO_INCREMENT,
  `parent_table_id` mediumint unsigned NOT NULL,
  `parent_table_name` varchar(64) COLLATE utf8mb4_general_ci DEFAULT NULL,
  `action_name` varchar(32) COLLATE utf8mb4_general_ci NOT NULL,
  `action_status` enum('init','running','error','complete','approved','rejected') COLLATE utf8mb4_general_ci NOT NULL DEFAULT 'init',
  `message` varchar(180) COLLATE utf8mb4_general_ci DEFAULT NULL,
  `created_by` varchar(255) COLLATE utf8mb4_general_ci NOT NULL,
  `created_at` datetime NOT NULL,
  `last_modified_by` varchar(255) COLLATE utf8mb4_general_ci NOT NULL,
  `last_modified` datetime NOT NULL,
  PRIMARY KEY (`abacus_state_id`),
  UNIQUE KEY `uidx_parent_action` (`parent_table_id`,`parent_table_name`,`action_name`)
) ENGINE=InnoDB AUTO_INCREMENT=[Redacted by tbls] DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci
```

</details>

## Columns

| Name              | Type                                                            | Default | Nullable | Extra Definition | Children                                        | Parents | Comment |
| ----------------- | --------------------------------------------------------------- | ------- | -------- | ---------------- | ----------------------------------------------- | ------- | ------- |
| abacus_state_id   | mediumint unsigned                                              |         | false    | auto_increment   | [abacus_state_history](abacus_state_history.md) |         |         |
| action_name       | varchar(32)                                                     |         | false    |                  |                                                 |         |         |
| action_status     | enum('init','running','error','complete','approved','rejected') | init    | false    |                  |                                                 |         |         |
| created_at        | datetime                                                        |         | false    |                  |                                                 |         |         |
| created_by        | varchar(255)                                                    |         | false    |                  |                                                 |         |         |
| last_modified     | datetime                                                        |         | false    |                  |                                                 |         |         |
| last_modified_by  | varchar(255)                                                    |         | false    |                  |                                                 |         |         |
| message           | varchar(180)                                                    |         | true     |                  |                                                 |         |         |
| parent_table_id   | mediumint unsigned                                              |         | false    |                  |                                                 |         |         |
| parent_table_name | varchar(64)                                                     |         | true     |                  |                                                 |         |         |

## Constraints

| Name               | Type        | Definition                                                                      |
| ------------------ | ----------- | ------------------------------------------------------------------------------- |
| PRIMARY            | PRIMARY KEY | PRIMARY KEY (abacus_state_id)                                                   |
| uidx_parent_action | UNIQUE      | UNIQUE KEY uidx_parent_action (parent_table_id, parent_table_name, action_name) |

## Indexes

| Name               | Definition                                                                                  |
| ------------------ | ------------------------------------------------------------------------------------------- |
| PRIMARY            | PRIMARY KEY (abacus_state_id) USING BTREE                                                   |
| uidx_parent_action | UNIQUE KEY uidx_parent_action (parent_table_id, parent_table_name, action_name) USING BTREE |

## Triggers

| Name                      | Definition                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| ------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| after_update_abacus_state | CREATE TRIGGER after_update_abacus_state AFTER UPDATE ON abacus_state<br />FOR EACH ROW<br />BEGIN<br />  INSERT INTO `abacus_state_history` (<br />    `abacus_state_id`,<br />    `parent_table_id`,<br />    `parent_table_name`,<br />    `action_name`,<br />    `action_status`,<br />    `message`,<br />    `created_by`,<br />    `created_at`,<br />    `last_modified_by`,<br />    `last_modified`<br />  ) VALUES (<br />    old.abacus_state_id,<br />    old.parent_table_id,<br />    old.parent_table_name,<br />    old.action_name,<br />    old.action_status,<br />    old.message,<br />    old.created_by,<br />    old.created_at,<br />    old.last_modified_by,<br />    old.last_modified<br />  );<br />END |

## Relations

![er](abacus_state.svg)

---

> Generated by [tbls](https://github.com/k1LoW/tbls)
