Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
402a5d634f | ||
|
|
cceaa62d7c |
-162
@@ -1,162 +0,0 @@
|
||||
# ---> Python
|
||||
# Byte-compiled / optimized / DLL files
|
||||
__pycache__/
|
||||
*.py[cod]
|
||||
*$py.class
|
||||
|
||||
# C extensions
|
||||
*.so
|
||||
|
||||
# Distribution / packaging
|
||||
.Python
|
||||
build/
|
||||
develop-eggs/
|
||||
dist/
|
||||
downloads/
|
||||
eggs/
|
||||
.eggs/
|
||||
lib/
|
||||
lib64/
|
||||
parts/
|
||||
sdist/
|
||||
var/
|
||||
wheels/
|
||||
share/python-wheels/
|
||||
*.egg-info/
|
||||
.installed.cfg
|
||||
*.egg
|
||||
MANIFEST
|
||||
|
||||
# PyInstaller
|
||||
# Usually these files are written by a python script from a template
|
||||
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
||||
*.manifest
|
||||
*.spec
|
||||
|
||||
# Installer logs
|
||||
pip-log.txt
|
||||
pip-delete-this-directory.txt
|
||||
|
||||
# Unit test / coverage reports
|
||||
htmlcov/
|
||||
.tox/
|
||||
.nox/
|
||||
.coverage
|
||||
.coverage.*
|
||||
.cache
|
||||
nosetests.xml
|
||||
coverage.xml
|
||||
*.cover
|
||||
*.py,cover
|
||||
.hypothesis/
|
||||
.pytest_cache/
|
||||
cover/
|
||||
|
||||
# Translations
|
||||
*.mo
|
||||
*.pot
|
||||
|
||||
# Django stuff:
|
||||
*.log
|
||||
local_settings.py
|
||||
db.sqlite3
|
||||
db.sqlite3-journal
|
||||
|
||||
# Flask stuff:
|
||||
instance/
|
||||
.webassets-cache
|
||||
|
||||
# Scrapy stuff:
|
||||
.scrapy
|
||||
|
||||
# Sphinx documentation
|
||||
docs/_build/
|
||||
|
||||
# PyBuilder
|
||||
.pybuilder/
|
||||
target/
|
||||
|
||||
# Jupyter Notebook
|
||||
.ipynb_checkpoints
|
||||
|
||||
# IPython
|
||||
profile_default/
|
||||
ipython_config.py
|
||||
|
||||
# pyenv
|
||||
# For a library or package, you might want to ignore these files since the code is
|
||||
# intended to run in multiple environments; otherwise, check them in:
|
||||
# .python-version
|
||||
|
||||
# pipenv
|
||||
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
|
||||
# However, in case of collaboration, if having platform-specific dependencies or dependencies
|
||||
# having no cross-platform support, pipenv may install dependencies that don't work, or not
|
||||
# install all needed dependencies.
|
||||
#Pipfile.lock
|
||||
|
||||
# poetry
|
||||
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
|
||||
# This is especially recommended for binary packages to ensure reproducibility, and is more
|
||||
# commonly ignored for libraries.
|
||||
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
|
||||
#poetry.lock
|
||||
|
||||
# pdm
|
||||
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
|
||||
#pdm.lock
|
||||
# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
|
||||
# in version control.
|
||||
# https://pdm.fming.dev/#use-with-ide
|
||||
.pdm.toml
|
||||
|
||||
# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
|
||||
__pypackages__/
|
||||
|
||||
# Celery stuff
|
||||
celerybeat-schedule
|
||||
celerybeat.pid
|
||||
|
||||
# SageMath parsed files
|
||||
*.sage.py
|
||||
|
||||
# Environments
|
||||
.env
|
||||
.venv
|
||||
env/
|
||||
venv/
|
||||
ENV/
|
||||
env.bak/
|
||||
venv.bak/
|
||||
|
||||
# Spyder project settings
|
||||
.spyderproject
|
||||
.spyproject
|
||||
|
||||
# Rope project settings
|
||||
.ropeproject
|
||||
|
||||
# mkdocs documentation
|
||||
/site
|
||||
|
||||
# mypy
|
||||
.mypy_cache/
|
||||
.dmypy.json
|
||||
dmypy.json
|
||||
|
||||
# Pyre type checker
|
||||
.pyre/
|
||||
|
||||
# pytype static type analyzer
|
||||
.pytype/
|
||||
|
||||
# Cython debug symbols
|
||||
cython_debug/
|
||||
|
||||
# PyCharm
|
||||
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
|
||||
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
|
||||
# and can be added to the global gitignore or merged into this file. For a more nuclear
|
||||
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
|
||||
#.idea/
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
# CLAUDE.md
|
||||
|
||||
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
||||
|
||||
## 项目概述
|
||||
|
||||
`rkutil` 是一个 Python 工具库项目,使用 Python 3.13,通过 PyCharm 管理,虚拟环境位于 `.venv/`。
|
||||
|
||||
## 环境配置
|
||||
|
||||
激活虚拟环境:
|
||||
```bash
|
||||
.venv/Scripts/activate
|
||||
```
|
||||
|
||||
安装依赖(待 `pyproject.toml` 或 `requirements.txt` 创建后):
|
||||
```bash
|
||||
pip install -e .
|
||||
# 或
|
||||
pip install -r requirements.txt
|
||||
```
|
||||
@@ -0,0 +1,269 @@
|
||||
import dmPython
|
||||
import openpyxl
|
||||
from openpyxl.styles import Font, PatternFill, Alignment, Border, Side
|
||||
|
||||
# ==================== 数据库配置 ====================
|
||||
DB_CONFIG = {
|
||||
"host": "192.168.1.250",
|
||||
"port": 5236,
|
||||
"user": "SYSDBA",
|
||||
"password": "Aa15790!123",
|
||||
}
|
||||
SCHEMA = "AYGC_JKYWK"
|
||||
TABLE_PREFIX = "QH_DAT_WATCH"
|
||||
OUTPUT_FILE = "export_qh_dat_watch.xlsx"
|
||||
|
||||
# 排除不需要导出的表
|
||||
TABLE_EXCLUDE = {
|
||||
"QH_DAT_WATCH_EME_MOBILE",
|
||||
"QH_DAT_WATCH_ERROR_LOG",
|
||||
"QH_DAT_WATCH_LOG",
|
||||
"QH_DAT_WATCH_MQTT_LOG",
|
||||
"QH_DAT_WATCH_NOTIFY",
|
||||
"QH_DAT_WATCH_NOTIFY_LOG",
|
||||
"QH_DAT_WATCH_PERIOD",
|
||||
"QH_DAT_WATCH_PERIOD_PRI",
|
||||
"QH_DAT_WATCH_STAT_ALL",
|
||||
"QH_DAT_WATCH_STAT_MAX_ID",
|
||||
"QH_DAT_WATCH_STAT_TODAY",
|
||||
"QH_DAT_WATCH_TASK",
|
||||
"QH_DAT_WATCH_TASKS",
|
||||
"QH_DAT_WATCH_TASKS_CYCLE",
|
||||
"QH_DAT_WATCH_TASKS_PRI",
|
||||
"QH_DAT_WATCH_WARN_FLAG",
|
||||
"QH_DAT_WATCH_WARN_PRI",
|
||||
}
|
||||
|
||||
# 当前表名 → 原始表名映射(来自 xc_boot.sql 的 RENAME 记录)
|
||||
TABLE_NAME_MAPPING = {
|
||||
"QH_DAT_WATCH_SPO2": "DC_WATCH_DATA_COMMON",
|
||||
"QH_DAT_WATCH_ECG": "DC_WATCH_DATA_ECG",
|
||||
"QH_DAT_WATCH_ECG_ITEM": "DC_WATCH_DATA_ECG_ITEM",
|
||||
"QH_DAT_WATCH_EXERCISE": "DC_WATCH_DATA_EXERCISE",
|
||||
"QH_DAT_WATCH_GPS": "DC_WATCH_DATA_GPS",
|
||||
"QH_DAT_WATCH_HEART_RATE": "DC_WATCH_DATA_HEART_RATE",
|
||||
"QH_DAT_WATCH_LOG": "DC_WATCH_DATA_LOG",
|
||||
"QH_DAT_WATCH_MONITOR": "DC_WATCH_DATA_MONITOR",
|
||||
"QH_DAT_WATCH_MONITOR_HR": "DC_WATCH_DATA_MONITOR_HEART_RATE",
|
||||
"QH_DAT_WATCH_MONITOR_SPO2": "DC_WATCH_DATA_MONITOR_SPO2",
|
||||
"QH_DAT_WATCH_MONITOR_STRE": "DC_WATCH_DATA_MONITOR_STRESS",
|
||||
"QH_DAT_WATCH_MONITOR_TEMP": "DC_WATCH_DATA_MONITOR_TEMPERATURE",
|
||||
"QH_DAT_WATCH_SDC": "DC_WATCH_DATA_SDC",
|
||||
"QH_DAT_WATCH_SDC_ITEM": "DC_WATCH_DATA_SDC_ITEM",
|
||||
"QH_DAT_WATCH_SDC_JSON": "DC_WATCH_DATA_SDC_JSON",
|
||||
"QH_DAT_WATCH_SLEEP": "DC_WATCH_DATA_SLEEP",
|
||||
"QH_DAT_WATCH_SLEEP_NEW": "DC_WATCH_DATA_SLEEP_NEW",
|
||||
"QH_DAT_WATCH_SLEEP_NEWDAY": "DC_WATCH_DATA_SLEEP_NEW_DAY",
|
||||
"QH_DAT_WATCH_SLEEP_NEWERR": "DC_WATCH_DATA_SLEEP_NEW_ERR",
|
||||
"QH_DAT_WATCH_SLEEP_NEWMIN": "DC_WATCH_DATA_SLEEP_NEW_MINUTE",
|
||||
"QH_DAT_WATCH5_SLEEP": "DC_WATCH_DATA_SLEEP_WATCH5",
|
||||
"QH_DAT_WATCH5_SLEEP_DETA": "DC_WATCH_DATA_SLEEP_WATCH5_DETAIL",
|
||||
"QH_DAT_WATCH_STEP": "DC_WATCH_DATA_STEP",
|
||||
"QH_DAT_WATCH_STEP_NEW": "DC_WATCH_DATA_STEP_NEW",
|
||||
"QH_DAT_WATCH_STRESS": "DC_WATCH_DATA_STRESS",
|
||||
"QH_DAT_WATCH_TASK": "DC_WATCH_DATA_TASK",
|
||||
"QH_DAT_WATCH_TEMPERATURE": "DC_WATCH_DATA_TEMPERATURE",
|
||||
"QH_DAT_WATCH_WORKOUT": "DC_WATCH_DATA_WORKOUT",
|
||||
"QH_DAT_WATCH_WORKOUT_TRAC":"DC_WATCH_DATA_WORKOUT_TRACE",
|
||||
"QH_DAT_WATCH_DEVICE": "DC_WATCH_DEVICE",
|
||||
"QH_DAT_WATCH_DEVICE_SWIT": "DC_WATCH_DEVICE_SWITCH",
|
||||
"QH_DAT_WATCH_VERSION_HIS": "DC_WATCH_DEVICE_VERSION_HIS",
|
||||
"QH_DAT_WATCH_EME_MOBILE": "DC_WATCH_EME_MOBILE",
|
||||
"QH_DAT_WATCH_ERROR_LOG": "DC_WATCH_ERROR_LOG",
|
||||
"QH_DAT_WATCH_MQTT_LOG": "DC_WATCH_MQTT_LOG",
|
||||
"QH_DAT_WATCH_NET_TYPE_LOG":"DC_WATCH_NET_TYPE_LOG",
|
||||
"QH_DAT_WATCH_NOTIFY": "DC_WATCH_NOTIFY",
|
||||
"QH_DAT_WATCH_NOTIFY_LOG": "DC_WATCH_NOTIFY_LOG",
|
||||
"QH_DAT_WATCH_PERIOD": "DC_WATCH_PERIOD",
|
||||
"QH_DAT_WATCH_PERIOD_PRI": "DC_WATCH_PERIOD_PERSONAL",
|
||||
"QH_DAT_WATCH_SET_INFO": "DC_WATCH_SET_INFO",
|
||||
"QH_DAT_WATCH_STAT_ALL": "DC_WATCH_STAT_ALL",
|
||||
"QH_DAT_WATCH_STAT_MAX_ID": "DC_WATCH_STAT_MAX_ID",
|
||||
"QH_DAT_WATCH_STAT_TODAY": "DC_WATCH_STAT_TODAY",
|
||||
"QH_DAT_WATCH_TASKS": "DC_WATCH_TASK",
|
||||
"QH_DAT_WATCH_TASKS_CYCLE": "DC_WATCH_TASK_CYCLE",
|
||||
"QH_DAT_WATCH_TASKS_PRI": "DC_WATCH_TASK_PERSONAL",
|
||||
"QH_DAT_WATCH_WARN_FLAG": "DC_WATCH_WARN_FLAG",
|
||||
"QH_DAT_WATCH_WARN_PRI": "DC_WATCH_WARN_PERSONAL",
|
||||
}
|
||||
# ====================================================
|
||||
|
||||
|
||||
def get_connection():
|
||||
"""建立达梦数据库连接"""
|
||||
return dmPython.connect(
|
||||
host=DB_CONFIG["host"],
|
||||
port=DB_CONFIG["port"],
|
||||
user=DB_CONFIG["user"],
|
||||
password=DB_CONFIG["password"],
|
||||
)
|
||||
|
||||
|
||||
def get_all_tables(cursor):
|
||||
"""获取指定模式下以 TABLE_PREFIX 开头的所有表名及表注释"""
|
||||
cursor.execute(
|
||||
"""
|
||||
SELECT t.TABLE_NAME, tc.COMMENTS
|
||||
FROM ALL_TABLES t
|
||||
LEFT JOIN ALL_TAB_COMMENTS tc
|
||||
ON tc.TABLE_NAME = t.TABLE_NAME
|
||||
AND tc.OWNER = t.OWNER
|
||||
WHERE t.OWNER = :1 AND t.TABLE_NAME LIKE :2
|
||||
ORDER BY t.TABLE_NAME
|
||||
""",
|
||||
(SCHEMA, TABLE_PREFIX + "%")
|
||||
)
|
||||
return [(name, comment) for name, comment in cursor.fetchall()
|
||||
if name not in TABLE_EXCLUDE]
|
||||
|
||||
|
||||
def get_columns_with_comments(cursor, table_name):
|
||||
"""获取表的字段名和中文注释,按字段顺序排列"""
|
||||
cursor.execute(
|
||||
"""
|
||||
SELECT c.COLUMN_NAME, cc.COMMENTS
|
||||
FROM ALL_TAB_COLUMNS c
|
||||
LEFT JOIN ALL_COL_COMMENTS cc
|
||||
ON cc.TABLE_NAME = c.TABLE_NAME
|
||||
AND cc.COLUMN_NAME = c.COLUMN_NAME
|
||||
AND cc.SCHEMA_NAME = :1
|
||||
WHERE c.OWNER = :2 AND c.TABLE_NAME = :3
|
||||
ORDER BY c.COLUMN_ID
|
||||
""",
|
||||
(SCHEMA, SCHEMA, table_name)
|
||||
)
|
||||
return cursor.fetchall() # [(column_name, comment), ...]
|
||||
|
||||
|
||||
def get_sample_rows(cursor, table_name, limit=3):
|
||||
"""获取表的示例数据"""
|
||||
try:
|
||||
cursor.execute(f'SELECT * FROM "{SCHEMA}"."{table_name}" LIMIT {limit}')
|
||||
return cursor.fetchall()
|
||||
except Exception:
|
||||
return []
|
||||
|
||||
|
||||
def make_header_style():
|
||||
"""生成表头样式"""
|
||||
fill = PatternFill(fill_type="solid", fgColor="4472C4")
|
||||
font = Font(bold=True, color="FFFFFF", size=11)
|
||||
alignment = Alignment(horizontal="center", vertical="center", wrap_text=True)
|
||||
thin = Side(style="thin", color="FFFFFF")
|
||||
border = Border(left=thin, right=thin, top=thin, bottom=thin)
|
||||
return fill, font, alignment, border
|
||||
|
||||
|
||||
def make_field_name_style():
|
||||
"""字段名列样式(浅蓝底)"""
|
||||
fill = PatternFill(fill_type="solid", fgColor="DCE6F1")
|
||||
font = Font(bold=True, size=10)
|
||||
alignment = Alignment(horizontal="left", vertical="center")
|
||||
return fill, font, alignment
|
||||
|
||||
|
||||
def make_table_title_style():
|
||||
"""表名标题行样式(深绿底白字)"""
|
||||
fill = PatternFill(fill_type="solid", fgColor="375623")
|
||||
font = Font(bold=True, color="FFFFFF", size=12)
|
||||
alignment = Alignment(horizontal="left", vertical="center")
|
||||
return fill, font, alignment
|
||||
|
||||
|
||||
def write_all_tables_to_sheet(ws, tables_data):
|
||||
"""将所有表写入同一个 Sheet,每张表前有标题行"""
|
||||
header_fill, header_font, header_align, header_border = make_header_style()
|
||||
field_fill, field_font, field_align = make_field_name_style()
|
||||
title_fill, title_font, title_align = make_table_title_style()
|
||||
|
||||
current_row = 1
|
||||
|
||||
for table_name, table_comment, columns, sample_rows in tables_data:
|
||||
# 优先使用原始表名显示,找不到映射则用当前名
|
||||
display_name = TABLE_NAME_MAPPING.get(table_name.upper(), table_name)
|
||||
# ---------- 第1行:表名 + 表注释(合并A-E列) ----------
|
||||
title_text = f"{display_name} {table_comment or ''}"
|
||||
ws.merge_cells(
|
||||
start_row=current_row, start_column=1,
|
||||
end_row=current_row, end_column=5
|
||||
)
|
||||
title_cell = ws.cell(row=current_row, column=1, value=title_text)
|
||||
title_cell.fill = title_fill
|
||||
title_cell.font = title_font
|
||||
title_cell.alignment = title_align
|
||||
ws.row_dimensions[current_row].height = 22
|
||||
current_row += 1
|
||||
|
||||
# ---------- 第2行:列头 ----------
|
||||
headers = ["数据名", "中文注释", "示例数据1", "示例数据2", "示例数据3"]
|
||||
for col_idx, header in enumerate(headers, start=1):
|
||||
cell = ws.cell(row=current_row, column=col_idx, value=header)
|
||||
cell.fill = header_fill
|
||||
cell.font = header_font
|
||||
cell.alignment = header_align
|
||||
cell.border = header_border
|
||||
ws.row_dimensions[current_row].height = 18
|
||||
current_row += 1
|
||||
|
||||
# ---------- 字段数据行 ----------
|
||||
for field_index, (col_name, comment) in enumerate(columns):
|
||||
cell_a = ws.cell(row=current_row, column=1, value=col_name)
|
||||
cell_a.fill = field_fill
|
||||
cell_a.font = field_font
|
||||
cell_a.alignment = field_align
|
||||
|
||||
ws.cell(row=current_row, column=2, value=comment or "")
|
||||
|
||||
for sample_col, sample_row in enumerate(sample_rows, start=3):
|
||||
val = sample_row[field_index] if field_index < len(sample_row) else ""
|
||||
ws.cell(row=current_row, column=sample_col,
|
||||
value=str(val) if val is not None else "NULL")
|
||||
current_row += 1
|
||||
|
||||
# 表与表之间空一行
|
||||
current_row += 1
|
||||
|
||||
# ---------- 统一设置列宽 ----------
|
||||
ws.column_dimensions["A"].width = 28
|
||||
ws.column_dimensions["B"].width = 32
|
||||
ws.column_dimensions["C"].width = 30
|
||||
ws.column_dimensions["D"].width = 30
|
||||
ws.column_dimensions["E"].width = 30
|
||||
|
||||
|
||||
def main():
|
||||
print(f"正在连接达梦数据库 {DB_CONFIG['host']}:{DB_CONFIG['port']} ...")
|
||||
conn = get_connection()
|
||||
cursor = conn.cursor()
|
||||
|
||||
print(f"获取模式 {SCHEMA} 下以 '{TABLE_PREFIX}' 开头的表...")
|
||||
tables = get_all_tables(cursor)
|
||||
print(f"共找到 {len(tables)} 张表")
|
||||
|
||||
# 预先收集所有表的数据
|
||||
tables_data = []
|
||||
for i, (table_name, table_comment) in enumerate(tables, start=1):
|
||||
print(f"[{i}/{len(tables)}] 处理表: {table_name}")
|
||||
columns = get_columns_with_comments(cursor, table_name)
|
||||
if not columns:
|
||||
print(f" ⚠ 字段为空: {table_name}")
|
||||
else:
|
||||
print(f" 字段数: {len(columns)}, 首字段: {columns[0]}")
|
||||
sample_rows = get_sample_rows(cursor, table_name)
|
||||
tables_data.append((table_name, table_comment, columns, sample_rows))
|
||||
|
||||
cursor.close()
|
||||
conn.close()
|
||||
|
||||
wb = openpyxl.Workbook()
|
||||
ws = wb.active
|
||||
ws.title = "表结构数据"
|
||||
|
||||
write_all_tables_to_sheet(ws, tables_data)
|
||||
|
||||
wb.save(OUTPUT_FILE)
|
||||
print(f"\n导出完成 -> {OUTPUT_FILE}")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -0,0 +1,269 @@
|
||||
import pymysql
|
||||
import openpyxl
|
||||
from openpyxl.styles import Font, PatternFill, Alignment, Border, Side
|
||||
|
||||
# ==================== 数据库配置 ====================
|
||||
DB_CONFIG = {
|
||||
"host": "192.168.10.100",
|
||||
"port": 3308,
|
||||
"user": "root",
|
||||
"password": "Aa135790123",
|
||||
"database": "cqyt_new_prod",
|
||||
"charset": "utf8mb4",
|
||||
}
|
||||
OUTPUT_FILE = "export_medical_to_excel.xlsx"
|
||||
|
||||
# 需要导出的表名列表(来自 mysql表名.txt)
|
||||
TARGET_TABLES = [
|
||||
"medical_announcement_info",
|
||||
"medical_banner",
|
||||
"medical_check_package",
|
||||
"medical_check_package_item",
|
||||
"medical_conclusion",
|
||||
"medical_defend_cancer_code",
|
||||
"medical_depart_hospital",
|
||||
"medical_diseases_dic",
|
||||
"medical_diseases_dic_rel",
|
||||
"medical_doctor_check_item",
|
||||
"medical_doctor_sign",
|
||||
"medical_emp_defend_cancer",
|
||||
"medical_emp_occup_import",
|
||||
"medical_emp_occupational",
|
||||
"medical_health_check_statistics",
|
||||
"medical_health_check_statistics_info",
|
||||
"medical_hospital",
|
||||
"medical_hospital_area",
|
||||
"medical_hospital_doctor_check",
|
||||
"medical_hospital_emp",
|
||||
"medical_hospital_except_count",
|
||||
"medical_hospital_except_date",
|
||||
"medical_hospital_item",
|
||||
"medical_hospital_item_rel",
|
||||
"medical_hospital_user",
|
||||
"medical_hospital_virtual",
|
||||
"medical_info",
|
||||
"medical_item",
|
||||
"medical_item_cost",
|
||||
"medical_item_mutex",
|
||||
"medical_item_package",
|
||||
"medical_item_package_model",
|
||||
"medical_item_package_model_append",
|
||||
"medical_item_package_model_append_sub",
|
||||
"medical_item_package_model_sub",
|
||||
"medical_item_package_sub",
|
||||
"medical_item_syn",
|
||||
"medical_limit_float",
|
||||
"medical_limit_model",
|
||||
"medical_model_float",
|
||||
"medical_order_info",
|
||||
"medical_order_queue",
|
||||
"medical_package_check",
|
||||
"medical_paper_question",
|
||||
"medical_paper_question_item",
|
||||
"medical_plan",
|
||||
"medical_plan_user",
|
||||
"medical_precheck_paper",
|
||||
"medical_precheck_paper_questions",
|
||||
"medical_record_model",
|
||||
"medical_record_model_base",
|
||||
"medical_record_model_config",
|
||||
"medical_serious_result_item",
|
||||
"medical_stat_year",
|
||||
"medical_uni_item_class",
|
||||
"medical_uni_item_class_office",
|
||||
"medical_uni_item_class_sicks",
|
||||
"medical_uni_item_hospital",
|
||||
"medical_uni_item_info",
|
||||
"medical_uni_item_risk_rel",
|
||||
"medical_uni_item_unusual_rel",
|
||||
"medical_user_defend_cancer_result",
|
||||
"medical_user_diseases",
|
||||
"medical_user_diseases_item",
|
||||
"medical_user_exception",
|
||||
"medical_user_exception_item",
|
||||
"medical_user_form",
|
||||
"medical_user_form_sub",
|
||||
"medical_user_ill",
|
||||
"medical_user_ill_sub",
|
||||
"medical_user_image",
|
||||
"medical_user_image_item",
|
||||
"medical_user_limit",
|
||||
"medical_user_paper",
|
||||
"medical_user_paper_answer",
|
||||
"medical_user_result",
|
||||
"medical_user_result_ext",
|
||||
"medical_user_result_item",
|
||||
"medical_user_result_item_tmp_unmatch",
|
||||
"medical_user_sign",
|
||||
]
|
||||
# ====================================================
|
||||
|
||||
|
||||
def get_connection():
|
||||
"""建立 MySQL 数据库连接"""
|
||||
return pymysql.connect(
|
||||
host=DB_CONFIG["host"],
|
||||
port=DB_CONFIG["port"],
|
||||
user=DB_CONFIG["user"],
|
||||
password=DB_CONFIG["password"],
|
||||
database=DB_CONFIG["database"],
|
||||
charset=DB_CONFIG["charset"],
|
||||
)
|
||||
|
||||
|
||||
def get_table_comment(cursor, table_name):
|
||||
"""获取表的中文注释"""
|
||||
cursor.execute(
|
||||
"""
|
||||
SELECT TABLE_COMMENT
|
||||
FROM information_schema.TABLES
|
||||
WHERE TABLE_SCHEMA = %s AND TABLE_NAME = %s
|
||||
""",
|
||||
(DB_CONFIG["database"], table_name)
|
||||
)
|
||||
row = cursor.fetchone()
|
||||
return row[0] if row else ""
|
||||
|
||||
|
||||
def get_columns_with_comments(cursor, table_name):
|
||||
"""获取表的字段名和中文注释,按字段顺序排列"""
|
||||
cursor.execute(
|
||||
"""
|
||||
SELECT COLUMN_NAME, COLUMN_COMMENT
|
||||
FROM information_schema.COLUMNS
|
||||
WHERE TABLE_SCHEMA = %s AND TABLE_NAME = %s
|
||||
ORDER BY ORDINAL_POSITION
|
||||
""",
|
||||
(DB_CONFIG["database"], table_name)
|
||||
)
|
||||
return cursor.fetchall() # [(column_name, comment), ...]
|
||||
|
||||
|
||||
def get_sample_rows(cursor, table_name, limit=3):
|
||||
"""获取表的示例数据"""
|
||||
try:
|
||||
cursor.execute(f"SELECT * FROM `{table_name}` LIMIT %s", (limit,))
|
||||
return cursor.fetchall()
|
||||
except Exception:
|
||||
return []
|
||||
|
||||
|
||||
def make_header_style():
|
||||
"""生成表头样式"""
|
||||
fill = PatternFill(fill_type="solid", fgColor="4472C4")
|
||||
font = Font(bold=True, color="FFFFFF", size=11)
|
||||
alignment = Alignment(horizontal="center", vertical="center", wrap_text=True)
|
||||
thin = Side(style="thin", color="FFFFFF")
|
||||
border = Border(left=thin, right=thin, top=thin, bottom=thin)
|
||||
return fill, font, alignment, border
|
||||
|
||||
|
||||
def make_field_name_style():
|
||||
"""字段名列样式(浅蓝底)"""
|
||||
fill = PatternFill(fill_type="solid", fgColor="DCE6F1")
|
||||
font = Font(bold=True, size=10)
|
||||
alignment = Alignment(horizontal="left", vertical="center")
|
||||
return fill, font, alignment
|
||||
|
||||
|
||||
def make_table_title_style():
|
||||
"""表名标题行样式(深绿底白字)"""
|
||||
fill = PatternFill(fill_type="solid", fgColor="375623")
|
||||
font = Font(bold=True, color="FFFFFF", size=12)
|
||||
alignment = Alignment(horizontal="left", vertical="center")
|
||||
return fill, font, alignment
|
||||
|
||||
|
||||
def write_all_tables_to_sheet(ws, tables_data):
|
||||
"""将所有表写入同一个 Sheet,每张表前有标题行"""
|
||||
header_fill, header_font, header_align, header_border = make_header_style()
|
||||
field_fill, field_font, field_align = make_field_name_style()
|
||||
title_fill, title_font, title_align = make_table_title_style()
|
||||
|
||||
current_row = 1
|
||||
|
||||
for table_name, table_comment, columns, sample_rows in tables_data:
|
||||
# ---------- 第1行:表名 + 表注释(合并A-E列) ----------
|
||||
title_text = f"{table_name} {table_comment or ''}"
|
||||
ws.merge_cells(
|
||||
start_row=current_row, start_column=1,
|
||||
end_row=current_row, end_column=5
|
||||
)
|
||||
title_cell = ws.cell(row=current_row, column=1, value=title_text)
|
||||
title_cell.fill = title_fill
|
||||
title_cell.font = title_font
|
||||
title_cell.alignment = title_align
|
||||
ws.row_dimensions[current_row].height = 22
|
||||
current_row += 1
|
||||
|
||||
# ---------- 第2行:列头 ----------
|
||||
headers = ["数据名", "中文注释", "示例数据1", "示例数据2", "示例数据3"]
|
||||
for col_idx, header in enumerate(headers, start=1):
|
||||
cell = ws.cell(row=current_row, column=col_idx, value=header)
|
||||
cell.fill = header_fill
|
||||
cell.font = header_font
|
||||
cell.alignment = header_align
|
||||
cell.border = header_border
|
||||
ws.row_dimensions[current_row].height = 18
|
||||
current_row += 1
|
||||
|
||||
# ---------- 字段数据行 ----------
|
||||
for field_index, (col_name, comment) in enumerate(columns):
|
||||
cell_a = ws.cell(row=current_row, column=1, value=col_name)
|
||||
cell_a.fill = field_fill
|
||||
cell_a.font = field_font
|
||||
cell_a.alignment = field_align
|
||||
|
||||
ws.cell(row=current_row, column=2, value=comment or "")
|
||||
|
||||
for sample_col, sample_row in enumerate(sample_rows, start=3):
|
||||
val = sample_row[field_index] if field_index < len(sample_row) else ""
|
||||
ws.cell(row=current_row, column=sample_col,
|
||||
value=str(val) if val is not None else "NULL")
|
||||
current_row += 1
|
||||
|
||||
# 表与表之间空一行
|
||||
current_row += 1
|
||||
|
||||
# ---------- 统一设置列宽 ----------
|
||||
ws.column_dimensions["A"].width = 28
|
||||
ws.column_dimensions["B"].width = 32
|
||||
ws.column_dimensions["C"].width = 30
|
||||
ws.column_dimensions["D"].width = 30
|
||||
ws.column_dimensions["E"].width = 30
|
||||
|
||||
|
||||
def main():
|
||||
print(f"正在连接 MySQL {DB_CONFIG['host']}:{DB_CONFIG['port']} ...")
|
||||
conn = get_connection()
|
||||
cursor = conn.cursor()
|
||||
|
||||
print(f"共 {len(TARGET_TABLES)} 张表待处理")
|
||||
|
||||
tables_data = []
|
||||
for i, table_name in enumerate(TARGET_TABLES, start=1):
|
||||
print(f"[{i}/{len(TARGET_TABLES)}] 处理表: {table_name}")
|
||||
table_comment = get_table_comment(cursor, table_name)
|
||||
columns = get_columns_with_comments(cursor, table_name)
|
||||
if not columns:
|
||||
print(f" ⚠ 字段为空或表不存在: {table_name}")
|
||||
else:
|
||||
print(f" 字段数: {len(columns)}, 表注释: {table_comment or '(无)'}")
|
||||
sample_rows = get_sample_rows(cursor, table_name)
|
||||
tables_data.append((table_name, table_comment, columns, sample_rows))
|
||||
|
||||
cursor.close()
|
||||
conn.close()
|
||||
|
||||
wb = openpyxl.Workbook()
|
||||
ws = wb.active
|
||||
ws.title = "表结构数据"
|
||||
|
||||
write_all_tables_to_sheet(ws, tables_data)
|
||||
|
||||
wb.save(OUTPUT_FILE)
|
||||
print(f"\n导出完成 -> {OUTPUT_FILE}")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Binary file not shown.
+80
@@ -0,0 +1,80 @@
|
||||
medical_announcement_info
|
||||
medical_banner
|
||||
medical_check_package
|
||||
medical_check_package_item
|
||||
medical_conclusion
|
||||
medical_defend_cancer_code
|
||||
medical_depart_hospital
|
||||
medical_diseases_dic
|
||||
medical_diseases_dic_rel
|
||||
medical_doctor_check_item
|
||||
medical_doctor_sign
|
||||
medical_emp_defend_cancer
|
||||
medical_emp_occup_import
|
||||
medical_emp_occupational
|
||||
medical_health_check_statistics
|
||||
medical_health_check_statistics_info
|
||||
medical_hospital
|
||||
medical_hospital_area
|
||||
medical_hospital_doctor_check
|
||||
medical_hospital_emp
|
||||
medical_hospital_except_count
|
||||
medical_hospital_except_date
|
||||
medical_hospital_item
|
||||
medical_hospital_item_rel
|
||||
medical_hospital_user
|
||||
medical_hospital_virtual
|
||||
medical_info
|
||||
medical_item
|
||||
medical_item_cost
|
||||
medical_item_mutex
|
||||
medical_item_package
|
||||
medical_item_package_model
|
||||
medical_item_package_model_append
|
||||
medical_item_package_model_append_sub
|
||||
medical_item_package_model_sub
|
||||
medical_item_package_sub
|
||||
medical_item_syn
|
||||
medical_limit_float
|
||||
medical_limit_model
|
||||
medical_model_float
|
||||
medical_order_info
|
||||
medical_order_queue
|
||||
medical_package_check
|
||||
medical_paper_question
|
||||
medical_paper_question_item
|
||||
medical_plan
|
||||
medical_plan_user
|
||||
medical_precheck_paper
|
||||
medical_precheck_paper_questions
|
||||
medical_record_model
|
||||
medical_record_model_base
|
||||
medical_record_model_config
|
||||
medical_serious_result_item
|
||||
medical_stat_year
|
||||
medical_uni_item_class
|
||||
medical_uni_item_class_office
|
||||
medical_uni_item_class_sicks
|
||||
medical_uni_item_hospital
|
||||
medical_uni_item_info
|
||||
medical_uni_item_risk_rel
|
||||
medical_uni_item_unusual_rel
|
||||
medical_user_defend_cancer_result
|
||||
medical_user_diseases
|
||||
medical_user_diseases_item
|
||||
medical_user_exception
|
||||
medical_user_exception_item
|
||||
medical_user_form
|
||||
medical_user_form_sub
|
||||
medical_user_ill
|
||||
medical_user_ill_sub
|
||||
medical_user_image
|
||||
medical_user_image_item
|
||||
medical_user_limit
|
||||
medical_user_paper
|
||||
medical_user_paper_answer
|
||||
medical_user_result
|
||||
medical_user_result_ext
|
||||
medical_user_result_item
|
||||
medical_user_result_item_tmp_unmatch
|
||||
medical_user_sign
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="PYTHON_MODULE" version="4">
|
||||
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
||||
<exclude-output />
|
||||
<content url="file://$MODULE_DIR$">
|
||||
<excludeFolder url="file://$MODULE_DIR$/.venv" />
|
||||
</content>
|
||||
<orderEntry type="jdk" jdkName="Python 3.13 (rkutil)" jdkType="Python SDK" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
</component>
|
||||
</module>
|
||||
+507
@@ -0,0 +1,507 @@
|
||||
-- 数据中心sql
|
||||
|
||||
DROP TABLE "DC_WATCH_DATA_ECG_20251231";
|
||||
DROP TABLE "DC_WATCH_DATA_ECG_ITEM_20251231";
|
||||
DROP TABLE "ONL_AUTH_DATA";
|
||||
DROP TABLE "ONL_AUTH_PAGE";
|
||||
DROP TABLE "ONL_AUTH_RELATION";
|
||||
DROP TABLE "ONL_CGFORM_BUTTON";
|
||||
DROP TABLE "ONL_CGFORM_ENHANCE_JAVA";
|
||||
DROP TABLE "ONL_CGFORM_ENHANCE_JS";
|
||||
DROP TABLE "ONL_CGFORM_ENHANCE_SQL";
|
||||
DROP TABLE "ONL_CGFORM_FIELD";
|
||||
DROP TABLE "ONL_CGFORM_HEAD";
|
||||
DROP TABLE "ONL_CGFORM_INDEX";
|
||||
DROP TABLE "ONL_CGREPORT_HEAD";
|
||||
DROP TABLE "ONL_CGREPORT_ITEM";
|
||||
DROP TABLE "ONL_CGREPORT_PARAM";
|
||||
DROP TABLE "OSS_FILE";
|
||||
DROP TABLE "SYS_CHECK_RULE";
|
||||
DROP TABLE "SYS_COMMENT";
|
||||
DROP TABLE "SYS_DATA_SOURCE";
|
||||
DROP TABLE "SYS_FILES";
|
||||
DROP TABLE "SYS_FORM_FILE";
|
||||
DROP TABLE "SYS_PERMISSION_COPY1";
|
||||
DROP TABLE "SYS_QUARTZ_JOB";
|
||||
DROP TABLE "SYS_TABLE_WHITE_LIST";
|
||||
DROP TABLE "SYS_TENANT";
|
||||
DROP TABLE "SYS_TENANT_PACK";
|
||||
DROP TABLE "SYS_TENANT_PACK_PERMS";
|
||||
DROP TABLE "SYS_TENANT_PACK_USER";
|
||||
DROP TABLE "SYS_THIRD_ACCOUNT";
|
||||
DROP TABLE "SYS_THIRD_APP_CONFIG";
|
||||
DROP TABLE "SYS_USER_AGENT";
|
||||
DROP TABLE "SYS_USER_TENANT";
|
||||
DROP TABLE "QRTZ_BLOB_TRIGGERS";
|
||||
DROP TABLE "QRTZ_CALENDARS";
|
||||
DROP TABLE "QRTZ_CRON_TRIGGERS";
|
||||
DROP TABLE "QRTZ_FIRED_TRIGGERS";
|
||||
DROP TABLE "QRTZ_JOB_DETAILS";
|
||||
DROP TABLE "QRTZ_LOCKS";
|
||||
DROP TABLE "QRTZ_PAUSED_TRIGGER_GRPS";
|
||||
DROP TABLE "QRTZ_SCHEDULER_STATE";
|
||||
DROP TABLE "QRTZ_SIMPLE_TRIGGERS";
|
||||
DROP TABLE "QRTZ_SIMPROP_TRIGGERS";
|
||||
DROP TABLE "QRTZ_TRIGGERS";
|
||||
ALTER TABLE "DC_WATCH_DATA_COMMON" RENAME TO "QH_DAT_WATCH_SPO2";
|
||||
ALTER TABLE "DC_WATCH_DATA_ECG" RENAME TO "QH_DAT_WATCH_ECG";
|
||||
ALTER TABLE "DC_WATCH_DATA_ECG_ITEM" RENAME TO "QH_DAT_WATCH_ECG_ITEM";
|
||||
ALTER TABLE "DC_WATCH_DATA_EXERCISE" RENAME TO "QH_DAT_WATCH_EXERCISE";
|
||||
ALTER TABLE "DC_WATCH_DATA_GPS" RENAME TO "QH_DAT_WATCH_GPS";
|
||||
ALTER TABLE "DC_WATCH_DATA_HEART_RATE" RENAME TO "QH_DAT_WATCH_HEART_RATE";
|
||||
ALTER TABLE "DC_WATCH_DATA_LOG" RENAME TO "QH_DAT_WATCH_LOG";
|
||||
ALTER TABLE "DC_WATCH_DATA_MONITOR" RENAME TO "QH_DAT_WATCH_MONITOR";
|
||||
ALTER TABLE "DC_WATCH_DATA_MONITOR_HEART_RATE" RENAME TO "QH_DAT_WATCH_MONITOR_HR";
|
||||
ALTER TABLE "DC_WATCH_DATA_MONITOR_SPO2" RENAME TO "QH_DAT_WATCH_MONITOR_SPO2";
|
||||
ALTER TABLE "DC_WATCH_DATA_MONITOR_STRESS" RENAME TO "QH_DAT_WATCH_MONITOR_STRE";
|
||||
ALTER TABLE "DC_WATCH_DATA_MONITOR_TEMPERATURE" RENAME TO "QH_DAT_WATCH_MONITOR_TEMP";
|
||||
ALTER TABLE "DC_WATCH_DATA_SDC" RENAME TO "QH_DAT_WATCH_SDC";
|
||||
ALTER TABLE "DC_WATCH_DATA_SDC_ITEM" RENAME TO "QH_DAT_WATCH_SDC_ITEM";
|
||||
ALTER TABLE "DC_WATCH_DATA_SDC_JSON" RENAME TO "QH_DAT_WATCH_SDC_JSON";
|
||||
ALTER TABLE "DC_WATCH_DATA_SLEEP" RENAME TO "QH_DAT_WATCH_SLEEP";
|
||||
ALTER TABLE "DC_WATCH_DATA_SLEEP_NEW" RENAME TO "QH_DAT_WATCH_SLEEP_NEW";
|
||||
ALTER TABLE "DC_WATCH_DATA_SLEEP_NEW_DAY" RENAME TO "QH_DAT_WATCH_SLEEP_NEWDAY";
|
||||
ALTER TABLE "DC_WATCH_DATA_SLEEP_NEW_ERR" RENAME TO "QH_DAT_WATCH_SLEEP_NEWERR";
|
||||
ALTER TABLE "DC_WATCH_DATA_SLEEP_NEW_MINUTE" RENAME TO "QH_DAT_WATCH_SLEEP_NEWMIN";
|
||||
ALTER TABLE "DC_WATCH_DATA_SLEEP_WATCH5" RENAME TO "QH_DAT_WATCH5_SLEEP";
|
||||
ALTER TABLE "DC_WATCH_DATA_SLEEP_WATCH5_DETAIL" RENAME TO "QH_DAT_WATCH5_SLEEP_DETA";
|
||||
ALTER TABLE "DC_WATCH_DATA_STEP" RENAME TO "QH_DAT_WATCH_STEP";
|
||||
ALTER TABLE "DC_WATCH_DATA_STEP_NEW" RENAME TO "QH_DAT_WATCH_STEP_NEW";
|
||||
ALTER TABLE "DC_WATCH_DATA_STRESS" RENAME TO "QH_DAT_WATCH_STRESS";
|
||||
ALTER TABLE "DC_WATCH_DATA_TASK" RENAME TO "QH_DAT_WATCH_TASK";
|
||||
ALTER TABLE "DC_WATCH_DATA_TEMPERATURE" RENAME TO "QH_DAT_WATCH_TEMPERATURE";
|
||||
ALTER TABLE "DC_WATCH_DATA_WORKOUT" RENAME TO "QH_DAT_WATCH_WORKOUT";
|
||||
ALTER TABLE "DC_WATCH_DATA_WORKOUT_TRACE" RENAME TO "QH_DAT_WATCH_WORKOUT_TRAC";
|
||||
ALTER TABLE "DC_WATCH_DEVICE" RENAME TO "QH_DAT_WATCH_DEVICE";
|
||||
ALTER TABLE "DC_WATCH_DEVICE_SWITCH" RENAME TO "QH_DAT_WATCH_DEVICE_SWIT";
|
||||
ALTER TABLE "DC_WATCH_DEVICE_VERSION_HIS" RENAME TO "QH_DAT_WATCH_VERSION_HIS";
|
||||
ALTER TABLE "DC_WATCH_EME_MOBILE" RENAME TO "QH_DAT_WATCH_EME_MOBILE";
|
||||
ALTER TABLE "DC_WATCH_ERROR_LOG" RENAME TO "QH_DAT_WATCH_ERROR_LOG";
|
||||
ALTER TABLE "DC_WATCH_MQTT_LOG" RENAME TO "QH_DAT_WATCH_MQTT_LOG";
|
||||
ALTER TABLE "DC_WATCH_NET_TYPE_LOG" RENAME TO "QH_DAT_WATCH_NET_TYPE_LOG";
|
||||
ALTER TABLE "DC_WATCH_NOTIFY" RENAME TO "QH_DAT_WATCH_NOTIFY";
|
||||
ALTER TABLE "DC_WATCH_NOTIFY_LOG" RENAME TO "QH_DAT_WATCH_NOTIFY_LOG";
|
||||
ALTER TABLE "DC_WATCH_PERIOD" RENAME TO "QH_DAT_WATCH_PERIOD";
|
||||
ALTER TABLE "DC_WATCH_PERIOD_PERSONAL" RENAME TO "QH_DAT_WATCH_PERIOD_PRI";
|
||||
ALTER TABLE "DC_WATCH_SET_INFO" RENAME TO "QH_DAT_WATCH_SET_INFO";
|
||||
ALTER TABLE "DC_WATCH_STAT_ALL" RENAME TO "QH_DAT_WATCH_STAT_ALL";
|
||||
ALTER TABLE "DC_WATCH_STAT_MAX_ID" RENAME TO "QH_DAT_WATCH_STAT_MAX_ID";
|
||||
ALTER TABLE "DC_WATCH_STAT_TODAY" RENAME TO "QH_DAT_WATCH_STAT_TODAY";
|
||||
ALTER TABLE "DC_WATCH_TASK" RENAME TO "QH_DAT_WATCH_TASKS";
|
||||
ALTER TABLE "DC_WATCH_TASK_CYCLE" RENAME TO "QH_DAT_WATCH_TASKS_CYCLE";
|
||||
ALTER TABLE "DC_WATCH_TASK_PERSONAL" RENAME TO "QH_DAT_WATCH_TASKS_PRI";
|
||||
ALTER TABLE "DC_WATCH_WARN_FLAG" RENAME TO "QH_DAT_WATCH_WARN_FLAG";
|
||||
ALTER TABLE "DC_WATCH_WARN_PERSONAL" RENAME TO "QH_DAT_WATCH_WARN_PRI";
|
||||
ALTER TABLE "SYS_ANNOUNCEMENT" RENAME TO "QH_SYW_ANNOUNCEMENT";
|
||||
ALTER TABLE "SYS_ANNOUNCEMENT_SEND" RENAME TO "QH_SYW_ANNOUNCEMENT_SEND";
|
||||
ALTER TABLE "SYS_CATEGORY" RENAME TO "QH_SYW_CATEGORY";
|
||||
ALTER TABLE "SYS_DATA_LOG" RENAME TO "QH_SYW_DATA_LOG";
|
||||
ALTER TABLE "SYS_DEPART" RENAME TO "QH_SYW_DEPART";
|
||||
ALTER TABLE "SYS_DEPART_PERMISSION" RENAME TO "QH_SYW_DEPART_PERMISSION";
|
||||
ALTER TABLE "SYS_DEPART_ROLE" RENAME TO "QH_SYW_DEPART_ROLE";
|
||||
ALTER TABLE "SYS_DEPART_ROLE_PERMISSION" RENAME TO "QH_SYW_DEPART_ROLE_PERM";
|
||||
ALTER TABLE "SYS_DEPART_ROLE_USER" RENAME TO "QH_SYW_DEPART_ROLE_USER";
|
||||
ALTER TABLE "SYS_DICT" RENAME TO "QH_SYW_DICT";
|
||||
ALTER TABLE "SYS_DICT_ITEM" RENAME TO "QH_SYW_DICT_ITEM";
|
||||
ALTER TABLE "SYS_FILL_RULE" RENAME TO "QH_SYW_FILL_RULE";
|
||||
ALTER TABLE "SYS_GATEWAY_ROUTE" RENAME TO "QH_SYW_GATEWAY_ROUTE";
|
||||
ALTER TABLE "SYS_LOG" RENAME TO "QH_SYW_LOG";
|
||||
ALTER TABLE "SYS_PERMISSION" RENAME TO "QH_SYW_PERMISSION";
|
||||
ALTER TABLE "SYS_PERMISSION_DATA_RULE" RENAME TO "QH_SYW_PERMISSION_DRULE";
|
||||
ALTER TABLE "SYS_POSITION" RENAME TO "QH_SYW_POSITION";
|
||||
ALTER TABLE "SYS_ROLE" RENAME TO "QH_SYW_ROLE";
|
||||
ALTER TABLE "SYS_ROLE_INDEX" RENAME TO "QH_SYW_ROLE_INDEX";
|
||||
ALTER TABLE "SYS_ROLE_PERMISSION" RENAME TO "QH_SYW_ROLE_PERMISSION";
|
||||
ALTER TABLE "SYS_SMS" RENAME TO "QH_SYW_SMS";
|
||||
ALTER TABLE "SYS_SMS_TEMPLATE" RENAME TO "QH_SYW_SMS_TEMPLATE";
|
||||
ALTER TABLE "SYS_USER" RENAME TO "QH_SYW_USER";
|
||||
ALTER TABLE "SYS_USER_DEPART" RENAME TO "QH_SYW_USER_DEPART";
|
||||
ALTER TABLE "SYS_USER_POSITION" RENAME TO "QH_SYW_USER_POSITION";
|
||||
ALTER TABLE "SYS_USER_ROLE" RENAME TO "QH_SYW_USER_ROLE";
|
||||
|
||||
-- 处理索引信息
|
||||
DROP INDEX "SYS_CATEGORY_IDX_SC_CODE";
|
||||
CREATE INDEX "IDX_SYW_CATEGORY_CODE" ON "QH_SYW_CATEGORY"("CODE");
|
||||
-- 删除并重建索引:SYS_ → SYW_
|
||||
|
||||
-- SYS_DATA_LOG_IDX_SDL_DATA_TABLE_ID (2列)
|
||||
DROP INDEX "SYS_DATA_LOG_IDX_SDL_DATA_TABLE_ID";
|
||||
CREATE INDEX "SYW_DATA_LOG_IDX_SDL_DATA_TABLE_ID"
|
||||
ON "QH_SYW_DATA_LOG"("DATA_TABLE", "DATA_ID");
|
||||
|
||||
-- SYS_DEPART_IDX_SD_DEPART_ORDER
|
||||
DROP INDEX "SYS_DEPART_IDX_SD_DEPART_ORDER";
|
||||
CREATE INDEX "SYW_DEPART_IDX_SD_DEPART_ORDER"
|
||||
ON "QH_SYW_DEPART"("DEPART_ORDER");
|
||||
|
||||
-- SYS_DEPART_IDX_SD_ORG_CODE
|
||||
DROP INDEX "SYS_DEPART_IDX_SD_ORG_CODE";
|
||||
CREATE INDEX "SYW_DEPART_IDX_SD_ORG_CODE"
|
||||
ON "QH_SYW_DEPART"("ORG_CODE");
|
||||
|
||||
-- SYS_DEPART_IDX_SD_PARENT_ID
|
||||
DROP INDEX "SYS_DEPART_IDX_SD_PARENT_ID";
|
||||
CREATE INDEX "SYW_DEPART_IDX_SD_PARENT_ID"
|
||||
ON "QH_SYW_DEPART"("PARENT_ID");
|
||||
|
||||
-- SYS_DEPART_ROLE_PERMISSION_IDX_SDRP_PER_ID
|
||||
DROP INDEX "SYS_DEPART_ROLE_PERMISSION_IDX_SDRP_PER_ID";
|
||||
CREATE INDEX "SYW_DEPART_ROLE_PERMISSION_IDX_SDRP_PER_ID"
|
||||
ON "QH_SYW_DEPART_ROLE_PERM"("PERMISSION_ID");
|
||||
|
||||
-- SYS_DEPART_ROLE_PERMISSION_IDX_SDRP_ROLE_ID
|
||||
DROP INDEX "SYS_DEPART_ROLE_PERMISSION_IDX_SDRP_ROLE_ID";
|
||||
CREATE INDEX "SYW_DEPART_ROLE_PERMISSION_IDX_SDRP_ROLE_ID"
|
||||
ON "QH_SYW_DEPART_ROLE_PERM"("ROLE_ID");
|
||||
|
||||
-- SYS_DEPART_ROLE_PERMISSION_IDX_SDRP_ROLE_PER_ID (2列)
|
||||
DROP INDEX "SYS_DEPART_ROLE_PERMISSION_IDX_SDRP_ROLE_PER_ID";
|
||||
CREATE INDEX "SYW_DEPART_ROLE_PERMISSION_IDX_SDRP_ROLE_PER_ID"
|
||||
ON "QH_SYW_DEPART_ROLE_PERM"("ROLE_ID", "PERMISSION_ID");
|
||||
|
||||
-- SYS_DICT_ITEM_IDX_SDI_DICT_VAL (2列)
|
||||
DROP INDEX "SYS_DICT_ITEM_IDX_SDI_DICT_VAL";
|
||||
CREATE INDEX "SYW_DICT_ITEM_IDX_SDI_DICT_VAL"
|
||||
ON "QH_SYW_DICT_ITEM"("DICT_ID", "ITEM_VALUE");
|
||||
|
||||
-- SYS_DICT_ITEM_IDX_SDI_ROLE_DICT_ID
|
||||
DROP INDEX "SYS_DICT_ITEM_IDX_SDI_ROLE_DICT_ID";
|
||||
CREATE INDEX "SYW_DICT_ITEM_IDX_SDI_ROLE_DICT_ID"
|
||||
ON "QH_SYW_DICT_ITEM"("DICT_ID");
|
||||
|
||||
-- SYS_DICT_ITEM_IDX_SDI_ROLE_SORT_ORDER
|
||||
DROP INDEX "SYS_DICT_ITEM_IDX_SDI_ROLE_SORT_ORDER";
|
||||
CREATE INDEX "SYW_DICT_ITEM_IDX_SDI_ROLE_SORT_ORDER"
|
||||
ON "QH_SYW_DICT_ITEM"("SORT_ORDER");
|
||||
|
||||
-- SYS_DICT_ITEM_IDX_SDI_STATUS
|
||||
DROP INDEX "SYS_DICT_ITEM_IDX_SDI_STATUS";
|
||||
CREATE INDEX "SYW_DICT_ITEM_IDX_SDI_STATUS"
|
||||
ON "QH_SYW_DICT_ITEM"("STATUS");
|
||||
|
||||
-- SYS_LOG_IDX_SL_CREATE_TIME
|
||||
DROP INDEX "SYS_LOG_IDX_SL_CREATE_TIME";
|
||||
CREATE INDEX "SYW_LOG_IDX_SL_CREATE_TIME"
|
||||
ON "QH_SYW_LOG"("CREATE_TIME");
|
||||
|
||||
-- SYS_LOG_IDX_SL_LOG_TYPE
|
||||
DROP INDEX "SYS_LOG_IDX_SL_LOG_TYPE";
|
||||
CREATE INDEX "SYW_LOG_IDX_SL_LOG_TYPE"
|
||||
ON "QH_SYW_LOG"("LOG_TYPE");
|
||||
|
||||
-- SYS_LOG_IDX_SL_OPERATE_TYPE
|
||||
DROP INDEX "SYS_LOG_IDX_SL_OPERATE_TYPE";
|
||||
CREATE INDEX "SYW_LOG_IDX_SL_OPERATE_TYPE"
|
||||
ON "QH_SYW_LOG"("OPERATE_TYPE");
|
||||
|
||||
-- SYS_LOG_IDX_SL_USERID
|
||||
DROP INDEX "SYS_LOG_IDX_SL_USERID";
|
||||
CREATE INDEX "SYW_LOG_IDX_SL_USERID"
|
||||
ON "QH_SYW_LOG"("USERID");
|
||||
|
||||
-- SYS_PERMISSION_DATA_RULE_IDX_SPDR_PERMISSION_ID
|
||||
DROP INDEX "SYS_PERMISSION_DATA_RULE_IDX_SPDR_PERMISSION_ID";
|
||||
CREATE INDEX "SYW_PERMISSION_DATA_RULE_IDX_SPDR_PERMISSION_ID"
|
||||
ON "QH_SYW_PERMISSION_DRULE"("PERMISSION_ID");
|
||||
|
||||
-- SYS_PERMISSION_INDEX_MENU_HIDDEN
|
||||
DROP INDEX "SYS_PERMISSION_INDEX_MENU_HIDDEN";
|
||||
CREATE INDEX "SYW_PERMISSION_INDEX_MENU_HIDDEN"
|
||||
ON "QH_SYW_PERMISSION"("HIDDEN");
|
||||
|
||||
-- SYS_PERMISSION_INDEX_MENU_STATUS
|
||||
DROP INDEX "SYS_PERMISSION_INDEX_MENU_STATUS";
|
||||
CREATE INDEX "SYW_PERMISSION_INDEX_MENU_STATUS"
|
||||
ON "QH_SYW_PERMISSION"("STATUS");
|
||||
|
||||
-- SYS_PERMISSION_INDEX_MENU_TYPE
|
||||
DROP INDEX "SYS_PERMISSION_INDEX_MENU_TYPE";
|
||||
CREATE INDEX "SYW_PERMISSION_INDEX_MENU_TYPE"
|
||||
ON "QH_SYW_PERMISSION"("MENU_TYPE");
|
||||
|
||||
-- SYS_ROLE_IDX_SR_ROLE_CODE
|
||||
DROP INDEX "SYS_ROLE_IDX_SR_ROLE_CODE";
|
||||
CREATE INDEX "SYW_ROLE_IDX_SR_ROLE_CODE"
|
||||
ON "QH_SYW_ROLE"("ROLE_CODE");
|
||||
|
||||
-- SYS_ROLE_PERMISSION_IDX_SRP_PERMISSION_ID
|
||||
DROP INDEX "SYS_ROLE_PERMISSION_IDX_SRP_PERMISSION_ID";
|
||||
CREATE INDEX "SYW_ROLE_PERMISSION_IDX_SRP_PERMISSION_ID"
|
||||
ON "QH_SYW_ROLE_PERMISSION"("PERMISSION_ID");
|
||||
|
||||
-- SYS_ROLE_PERMISSION_IDX_SRP_ROLE_ID
|
||||
DROP INDEX "SYS_ROLE_PERMISSION_IDX_SRP_ROLE_ID";
|
||||
CREATE INDEX "SYW_ROLE_PERMISSION_IDX_SRP_ROLE_ID"
|
||||
ON "QH_SYW_ROLE_PERMISSION"("ROLE_ID");
|
||||
|
||||
-- SYS_ROLE_PERMISSION_IDX_SRP_ROLE_PER_ID (2列)
|
||||
DROP INDEX "SYS_ROLE_PERMISSION_IDX_SRP_ROLE_PER_ID";
|
||||
CREATE INDEX "SYW_ROLE_PERMISSION_IDX_SRP_ROLE_PER_ID"
|
||||
ON "QH_SYW_ROLE_PERMISSION"("ROLE_ID", "PERMISSION_ID");
|
||||
|
||||
-- SYS_SMS_IDX_SS_ES_RECEIVER
|
||||
DROP INDEX "SYS_SMS_IDX_SS_ES_RECEIVER";
|
||||
CREATE INDEX "SYW_SMS_IDX_SS_ES_RECEIVER"
|
||||
ON "QH_SYW_SMS"("ES_RECEIVER");
|
||||
|
||||
-- SYS_SMS_IDX_SS_ES_SEND_STATUS
|
||||
DROP INDEX "SYS_SMS_IDX_SS_ES_SEND_STATUS";
|
||||
CREATE INDEX "SYW_SMS_IDX_SS_ES_SEND_STATUS"
|
||||
ON "QH_SYW_SMS"("ES_SEND_STATUS");
|
||||
|
||||
-- SYS_SMS_IDX_SS_ES_SEND_TIME
|
||||
DROP INDEX "SYS_SMS_IDX_SS_ES_SEND_TIME";
|
||||
CREATE INDEX "SYW_SMS_IDX_SS_ES_SEND_TIME"
|
||||
ON "QH_SYW_SMS"("ES_SEND_TIME");
|
||||
|
||||
-- SYS_SMS_IDX_SS_ES_TYPE
|
||||
DROP INDEX "SYS_SMS_IDX_SS_ES_TYPE";
|
||||
CREATE INDEX "SYW_SMS_IDX_SS_ES_TYPE"
|
||||
ON "QH_SYW_SMS"("ES_TYPE");
|
||||
|
||||
-- SYS_USER_DEPART_IDX_SUD_DEP_ID
|
||||
DROP INDEX "SYS_USER_DEPART_IDX_SUD_DEP_ID";
|
||||
CREATE INDEX "SYW_USER_DEPART_IDX_SUD_DEP_ID"
|
||||
ON "QH_SYW_USER_DEPART"("DEP_ID");
|
||||
|
||||
-- SYS_USER_DEPART_IDX_SUD_USER_DEP_ID (2列)
|
||||
DROP INDEX "SYS_USER_DEPART_IDX_SUD_USER_DEP_ID";
|
||||
CREATE INDEX "SYW_USER_DEPART_IDX_SUD_USER_DEP_ID"
|
||||
ON "QH_SYW_USER_DEPART"("USER_ID", "DEP_ID");
|
||||
|
||||
-- SYS_USER_DEPART_IDX_SUD_USER_ID
|
||||
DROP INDEX "SYS_USER_DEPART_IDX_SUD_USER_ID";
|
||||
CREATE INDEX "SYW_USER_DEPART_IDX_SUD_USER_ID"
|
||||
ON "QH_SYW_USER_DEPART"("USER_ID");
|
||||
|
||||
-- SYS_USER_IDX_SU_DEL_FLAG
|
||||
DROP INDEX "SYS_USER_IDX_SU_DEL_FLAG";
|
||||
CREATE INDEX "SYW_USER_IDX_SU_DEL_FLAG"
|
||||
ON "QH_SYW_USER"("DEL_FLAG");
|
||||
|
||||
-- SYS_USER_IDX_SU_STATUS
|
||||
DROP INDEX "SYS_USER_IDX_SU_STATUS";
|
||||
CREATE INDEX "SYW_USER_IDX_SU_STATUS"
|
||||
ON "QH_SYW_USER"("STATUS");
|
||||
|
||||
-- SYS_USER_IDX_SU_USERNAME
|
||||
DROP INDEX "SYS_USER_IDX_SU_USERNAME";
|
||||
CREATE INDEX "SYW_USER_IDX_SU_USERNAME"
|
||||
ON "QH_SYW_USER"("USERNAME");
|
||||
|
||||
-- SYS_USER_POSITION_IDX_SUP_POSITION_ID
|
||||
DROP INDEX "SYS_USER_POSITION_IDX_SUP_POSITION_ID";
|
||||
CREATE INDEX "SYW_USER_POSITION_IDX_SUP_POSITION_ID"
|
||||
ON "QH_SYW_USER_POSITION"("POSITION_ID");
|
||||
|
||||
-- SYS_USER_POSITION_IDX_SUP_USER_ID
|
||||
DROP INDEX "SYS_USER_POSITION_IDX_SUP_USER_ID";
|
||||
CREATE INDEX "SYW_USER_POSITION_IDX_SUP_USER_ID"
|
||||
ON "QH_SYW_USER_POSITION"("USER_ID");
|
||||
|
||||
-- SYS_USER_POSITION_IDX_SUP_USER_POSITION_ID (2列)
|
||||
DROP INDEX "SYS_USER_POSITION_IDX_SUP_USER_POSITION_ID";
|
||||
CREATE INDEX "SYW_USER_POSITION_IDX_SUP_USER_POSITION_ID"
|
||||
ON "QH_SYW_USER_POSITION"("USER_ID", "POSITION_ID");
|
||||
|
||||
-- SYS_USER_ROLE_IDX_SUR_ROLE_ID
|
||||
DROP INDEX "SYS_USER_ROLE_IDX_SUR_ROLE_ID";
|
||||
CREATE INDEX "SYW_USER_ROLE_IDX_SUR_ROLE_ID"
|
||||
ON "QH_SYW_USER_ROLE"("ROLE_ID");
|
||||
|
||||
-- SYS_USER_ROLE_IDX_SUR_USER_ID
|
||||
DROP INDEX "SYS_USER_ROLE_IDX_SUR_USER_ID";
|
||||
CREATE INDEX "SYW_USER_ROLE_IDX_SUR_USER_ID"
|
||||
ON "QH_SYW_USER_ROLE"("USER_ID");
|
||||
|
||||
-- SYS_USER_ROLE_IDX_SUR_USER_ROLE_ID (2列)
|
||||
DROP INDEX "SYS_USER_ROLE_IDX_SUR_USER_ROLE_ID";
|
||||
CREATE INDEX "SYW_USER_ROLE_IDX_SUR_USER_ROLE_ID"
|
||||
ON "QH_SYW_USER_ROLE"("USER_ID", "ROLE_ID");
|
||||
|
||||
|
||||
-- 其他约束
|
||||
-- ========== 主键约束 (PRIMARY KEY) ==========
|
||||
|
||||
-- QH_SYW_ANNOUNCEMENT
|
||||
ALTER TABLE "QH_SYW_ANNOUNCEMENT" DROP CONSTRAINT "SYS_ANNOUNCEMENT_PRIMARY";
|
||||
ALTER TABLE "QH_SYW_ANNOUNCEMENT" ADD CONSTRAINT "SYW_ANNOUNCEMENT_PRIMARY" PRIMARY KEY ("ID");
|
||||
|
||||
-- QH_SYW_CATEGORY
|
||||
ALTER TABLE "QH_SYW_CATEGORY" DROP CONSTRAINT "SYS_CATEGORY_PRIMARY";
|
||||
ALTER TABLE "QH_SYW_CATEGORY" ADD CONSTRAINT "SYW_CATEGORY_PRIMARY" PRIMARY KEY ("ID");
|
||||
|
||||
-- QH_SYW_DATA_LOG
|
||||
ALTER TABLE "QH_SYW_DATA_LOG" DROP CONSTRAINT "SYS_DATA_LOG_PRIMARY";
|
||||
ALTER TABLE "QH_SYW_DATA_LOG" ADD CONSTRAINT "SYW_DATA_LOG_PRIMARY" PRIMARY KEY ("ID");
|
||||
|
||||
-- QH_SYW_DEPART
|
||||
ALTER TABLE "QH_SYW_DEPART" DROP CONSTRAINT "SYS_DEPART_PRIMARY";
|
||||
ALTER TABLE "QH_SYW_DEPART" ADD CONSTRAINT "SYW_DEPART_PRIMARY" PRIMARY KEY ("ID");
|
||||
|
||||
-- QH_SYW_DEPART_PERMISSION
|
||||
ALTER TABLE "QH_SYW_DEPART_PERMISSION" DROP CONSTRAINT "SYS_DEPART_PERMISSION_PRIMARY";
|
||||
ALTER TABLE "QH_SYW_DEPART_PERMISSION" ADD CONSTRAINT "SYW_DEPART_PERMISSION_PRIMARY" PRIMARY KEY ("ID");
|
||||
|
||||
-- QH_SYW_DEPART_ROLE
|
||||
ALTER TABLE "QH_SYW_DEPART_ROLE" DROP CONSTRAINT "SYS_DEPART_ROLE_PRIMARY";
|
||||
ALTER TABLE "QH_SYW_DEPART_ROLE" ADD CONSTRAINT "SYW_DEPART_ROLE_PRIMARY" PRIMARY KEY ("ID");
|
||||
|
||||
-- QH_SYW_DEPART_ROLE_PERM
|
||||
ALTER TABLE "QH_SYW_DEPART_ROLE_PERM" DROP CONSTRAINT "SYS_DEPART_ROLE_PERMISSION_PRIMARY";
|
||||
ALTER TABLE "QH_SYW_DEPART_ROLE_PERM" ADD CONSTRAINT "SYW_DEPART_ROLE_PERMISSION_PRIMARY" PRIMARY KEY ("ID");
|
||||
|
||||
-- QH_SYW_DEPART_ROLE_USER
|
||||
ALTER TABLE "QH_SYW_DEPART_ROLE_USER" DROP CONSTRAINT "SYS_DEPART_ROLE_USER_PRIMARY";
|
||||
ALTER TABLE "QH_SYW_DEPART_ROLE_USER" ADD CONSTRAINT "SYW_DEPART_ROLE_USER_PRIMARY" PRIMARY KEY ("ID");
|
||||
|
||||
-- QH_SYW_DICT
|
||||
ALTER TABLE "QH_SYW_DICT" DROP CONSTRAINT "SYS_DICT_PRIMARY";
|
||||
ALTER TABLE "QH_SYW_DICT" ADD CONSTRAINT "SYW_DICT_PRIMARY" PRIMARY KEY ("ID");
|
||||
|
||||
-- QH_SYW_DICT_ITEM
|
||||
ALTER TABLE "QH_SYW_DICT_ITEM" DROP CONSTRAINT "SYS_DICT_ITEM_PRIMARY";
|
||||
ALTER TABLE "QH_SYW_DICT_ITEM" ADD CONSTRAINT "SYW_DICT_ITEM_PRIMARY" PRIMARY KEY ("ID");
|
||||
|
||||
-- QH_SYW_FILL_RULE
|
||||
ALTER TABLE "QH_SYW_FILL_RULE" DROP CONSTRAINT "SYS_FILL_RULE_PRIMARY";
|
||||
ALTER TABLE "QH_SYW_FILL_RULE" ADD CONSTRAINT "SYW_FILL_RULE_PRIMARY" PRIMARY KEY ("ID");
|
||||
|
||||
-- QH_SYW_GATEWAY_ROUTE
|
||||
ALTER TABLE "QH_SYW_GATEWAY_ROUTE" DROP CONSTRAINT "SYS_GATEWAY_ROUTE_PRIMARY";
|
||||
ALTER TABLE "QH_SYW_GATEWAY_ROUTE" ADD CONSTRAINT "SYW_GATEWAY_ROUTE_PRIMARY" PRIMARY KEY ("ID");
|
||||
|
||||
-- QH_SYW_LOG
|
||||
ALTER TABLE "QH_SYW_LOG" DROP CONSTRAINT "SYS_LOG_PRIMARY";
|
||||
ALTER TABLE "QH_SYW_LOG" ADD CONSTRAINT "SYW_LOG_PRIMARY" PRIMARY KEY ("ID");
|
||||
|
||||
-- QH_SYW_PERMISSION
|
||||
ALTER TABLE "QH_SYW_PERMISSION" DROP CONSTRAINT "SYS_PERMISSION_PRIMARY";
|
||||
ALTER TABLE "QH_SYW_PERMISSION" ADD CONSTRAINT "SYW_PERMISSION_PRIMARY" PRIMARY KEY ("ID");
|
||||
|
||||
-- QH_SYW_PERMISSION_DRULE
|
||||
ALTER TABLE "QH_SYW_PERMISSION_DRULE" DROP CONSTRAINT "SYS_PERMISSION_DATA_RULE_PRIMARY";
|
||||
ALTER TABLE "QH_SYW_PERMISSION_DRULE" ADD CONSTRAINT "SYW_PERMISSION_DATA_RULE_PRIMARY" PRIMARY KEY ("ID");
|
||||
|
||||
-- QH_SYW_POSITION
|
||||
ALTER TABLE "QH_SYW_POSITION" DROP CONSTRAINT "SYS_POSITION_PRIMARY";
|
||||
ALTER TABLE "QH_SYW_POSITION" ADD CONSTRAINT "SYW_POSITION_PRIMARY" PRIMARY KEY ("ID");
|
||||
|
||||
-- QH_SYW_ROLE
|
||||
ALTER TABLE "QH_SYW_ROLE" DROP CONSTRAINT "SYS_ROLE_PRIMARY";
|
||||
ALTER TABLE "QH_SYW_ROLE" ADD CONSTRAINT "SYW_ROLE_PRIMARY" PRIMARY KEY ("ID");
|
||||
|
||||
-- QH_SYW_ROLE_INDEX
|
||||
ALTER TABLE "QH_SYW_ROLE_INDEX" DROP CONSTRAINT "SYS_ROLE_INDEX_PRIMARY";
|
||||
ALTER TABLE "QH_SYW_ROLE_INDEX" ADD CONSTRAINT "SYW_ROLE_INDEX_PRIMARY" PRIMARY KEY ("ID");
|
||||
|
||||
-- QH_SYW_ROLE_PERMISSION
|
||||
ALTER TABLE "QH_SYW_ROLE_PERMISSION" DROP CONSTRAINT "SYS_ROLE_PERMISSION_PRIMARY";
|
||||
ALTER TABLE "QH_SYW_ROLE_PERMISSION" ADD CONSTRAINT "SYW_ROLE_PERMISSION_PRIMARY" PRIMARY KEY ("ID");
|
||||
|
||||
-- QH_SYW_SMS
|
||||
ALTER TABLE "QH_SYW_SMS" DROP CONSTRAINT "SYS_SMS_PRIMARY";
|
||||
ALTER TABLE "QH_SYW_SMS" ADD CONSTRAINT "SYW_SMS_PRIMARY" PRIMARY KEY ("ID");
|
||||
|
||||
-- QH_SYW_SMS_TEMPLATE
|
||||
ALTER TABLE "QH_SYW_SMS_TEMPLATE" DROP CONSTRAINT "SYS_SMS_TEMPLATE_PRIMARY";
|
||||
ALTER TABLE "QH_SYW_SMS_TEMPLATE" ADD CONSTRAINT "SYW_SMS_TEMPLATE_PRIMARY" PRIMARY KEY ("ID");
|
||||
|
||||
-- QH_SYW_USER
|
||||
ALTER TABLE "QH_SYW_USER" DROP CONSTRAINT "SYS_USER_PRIMARY";
|
||||
ALTER TABLE "QH_SYW_USER" ADD CONSTRAINT "SYW_USER_PRIMARY" PRIMARY KEY ("ID");
|
||||
|
||||
-- QH_SYW_USER_DEPART
|
||||
ALTER TABLE "QH_SYW_USER_DEPART" DROP CONSTRAINT "SYS_USER_DEPART_PRIMARY";
|
||||
ALTER TABLE "QH_SYW_USER_DEPART" ADD CONSTRAINT "SYW_USER_DEPART_PRIMARY" PRIMARY KEY ("ID");
|
||||
|
||||
-- QH_SYW_USER_POSITION
|
||||
ALTER TABLE "QH_SYW_USER_POSITION" DROP CONSTRAINT "SYS_USER_POSITION_PRIMARY";
|
||||
ALTER TABLE "QH_SYW_USER_POSITION" ADD CONSTRAINT "SYW_USER_POSITION_PRIMARY" PRIMARY KEY ("ID");
|
||||
|
||||
-- QH_SYW_USER_ROLE
|
||||
ALTER TABLE "QH_SYW_USER_ROLE" DROP CONSTRAINT "SYS_USER_ROLE_PRIMARY";
|
||||
ALTER TABLE "QH_SYW_USER_ROLE" ADD CONSTRAINT "SYW_USER_ROLE_PRIMARY" PRIMARY KEY ("ID");
|
||||
|
||||
|
||||
-- ========== 唯一约束 (UNIQUE) ==========
|
||||
|
||||
-- QH_SYW_CATEGORY (CODE)
|
||||
ALTER TABLE "QH_SYW_CATEGORY" DROP CONSTRAINT "SYS_CATEGORY_INDEX_CODE";
|
||||
ALTER TABLE "QH_SYW_CATEGORY" ADD CONSTRAINT "SYW_CATEGORY_INDEX_CODE" UNIQUE ("CODE");
|
||||
|
||||
-- QH_SYW_DEPART (ORG_CODE)
|
||||
ALTER TABLE "QH_SYW_DEPART" DROP CONSTRAINT "SYS_DEPART_UNIQ_DEPART_ORG_CODE";
|
||||
ALTER TABLE "QH_SYW_DEPART" ADD CONSTRAINT "SYW_DEPART_UNIQ_DEPART_ORG_CODE" UNIQUE ("ORG_CODE");
|
||||
|
||||
-- QH_SYW_DICT (DICT_CODE)
|
||||
ALTER TABLE "QH_SYW_DICT" DROP CONSTRAINT "SYS_DICT_UK_SD_DICT_CODE";
|
||||
ALTER TABLE "QH_SYW_DICT" ADD CONSTRAINT "SYW_DICT_UK_SD_DICT_CODE" UNIQUE ("DICT_CODE");
|
||||
|
||||
-- QH_SYW_FILL_RULE (RULE_CODE)
|
||||
ALTER TABLE "QH_SYW_FILL_RULE" DROP CONSTRAINT "SYS_FILL_RULE_UK_SFR_RULE_CODE";
|
||||
ALTER TABLE "QH_SYW_FILL_RULE" ADD CONSTRAINT "SYW_FILL_RULE_UK_SFR_RULE_CODE" UNIQUE ("RULE_CODE");
|
||||
|
||||
-- QH_SYW_POSITION (CODE)
|
||||
ALTER TABLE "QH_SYW_POSITION" DROP CONSTRAINT "SYS_POSITION_UNIQ_CODE";
|
||||
ALTER TABLE "QH_SYW_POSITION" ADD CONSTRAINT "SYW_POSITION_UNIQ_CODE" UNIQUE ("CODE");
|
||||
|
||||
-- QH_SYW_ROLE (ROLE_CODE)
|
||||
ALTER TABLE "QH_SYW_ROLE" DROP CONSTRAINT "SYS_ROLE_UNIQ_SYS_ROLE_ROLE_CODE";
|
||||
ALTER TABLE "QH_SYW_ROLE" ADD CONSTRAINT "SYW_ROLE_UNIQ_SYS_ROLE_ROLE_CODE" UNIQUE ("ROLE_CODE");
|
||||
|
||||
-- QH_SYW_SMS_TEMPLATE (TEMPLATE_CODE)
|
||||
ALTER TABLE "QH_SYW_SMS_TEMPLATE" DROP CONSTRAINT "SYS_SMS_TEMPLATE_UK_SST_TEMPLATE_CODE";
|
||||
ALTER TABLE "QH_SYW_SMS_TEMPLATE" ADD CONSTRAINT "SYW_SMS_TEMPLATE_UK_SST_TEMPLATE_CODE" UNIQUE ("TEMPLATE_CODE");
|
||||
|
||||
-- QH_SYW_USER (EMAIL)
|
||||
ALTER TABLE "QH_SYW_USER" DROP CONSTRAINT "SYS_USER_UNIQ_SYS_USER_EMAIL";
|
||||
ALTER TABLE "QH_SYW_USER" ADD CONSTRAINT "SYW_USER_UNIQ_SYS_USER_EMAIL" UNIQUE ("EMAIL");
|
||||
|
||||
-- QH_SYW_USER (PHONE)
|
||||
ALTER TABLE "QH_SYW_USER" DROP CONSTRAINT "SYS_USER_UNIQ_SYS_USER_PHONE";
|
||||
ALTER TABLE "QH_SYW_USER" ADD CONSTRAINT "SYW_USER_UNIQ_SYS_USER_PHONE" UNIQUE ("PHONE");
|
||||
|
||||
-- QH_SYW_USER (USERNAME)
|
||||
ALTER TABLE "QH_SYW_USER" DROP CONSTRAINT "SYS_USER_UNIQ_SYS_USER_USERNAME";
|
||||
ALTER TABLE "QH_SYW_USER" ADD CONSTRAINT "SYW_USER_UNIQ_SYS_USER_USERNAME" UNIQUE ("USERNAME");
|
||||
|
||||
-- QH_SYW_USER (WORK_NO)
|
||||
ALTER TABLE "QH_SYW_USER" DROP CONSTRAINT "SYS_USER_UNIQ_SYS_USER_WORK_NO";
|
||||
ALTER TABLE "QH_SYW_USER" ADD CONSTRAINT "SYW_USER_UNIQ_SYS_USER_WORK_NO" UNIQUE ("WORK_NO");
|
||||
|
||||
|
||||
update QH_SYW_PERMISSION set IS_LEAF = '0' where id = '1783054127343742978';
|
||||
|
||||
INSERT INTO "QH_SYW_PERMISSION" ("ID", "PARENT_ID", "NAME", "URL", "COMPONENT", "IS_ROUTE", "COMPONENT_NAME", "REDIRECT", "MENU_TYPE", "PERMS", "PERMS_TYPE", "SORT_NO", "ALWAYS_SHOW", "ICON", "IS_LEAF", "KEEP_ALIVE", "HIDDEN", "HIDE_TAB", "DESCRIPTION", "CREATE_BY", "CREATE_TIME", "UPDATE_BY", "UPDATE_TIME", "DEL_FLAG", "RULE_FLAG", "STATUS", "INTERNAL_OR_EXTERNAL") VALUES ('2030887284245504002', '190c2b43bec6a5f7a4194a85db67d96a', '查询角色用户', NULL, NULL, 0, NULL, NULL, 2, 'system:user:queryUserRole', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', TO_TIMESTAMP('2026-03-09 14:03:55', 'SYYYY-MM-DD HH24:MI:SS'), NULL, NULL, 0, 0, '1', 0);
|
||||
|
||||
INSERT INTO "QH_SYW_PERMISSION" ("ID", "PARENT_ID", "NAME", "URL", "COMPONENT", "IS_ROUTE", "COMPONENT_NAME", "REDIRECT", "MENU_TYPE", "PERMS", "PERMS_TYPE", "SORT_NO", "ALWAYS_SHOW", "ICON", "IS_LEAF", "KEEP_ALIVE", "HIDDEN", "HIDE_TAB", "DESCRIPTION", "CREATE_BY", "CREATE_TIME", "UPDATE_BY", "UPDATE_TIME", "DEL_FLAG", "RULE_FLAG", "STATUS", "INTERNAL_OR_EXTERNAL") VALUES ('2033422388611641346', '3f915b2769fc80648e92d04e84ca059d', '冻结', NULL, NULL, 0, NULL, NULL, 2, 'system:user:frozenBatch', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', TO_TIMESTAMP('2026-03-16 13:57:31', 'SYYYY-MM-DD HH24:MI:SS'), NULL, NULL, 0, 0, '1', 0);
|
||||
|
||||
INSERT INTO "QH_SYW_PERMISSION" ("ID", "PARENT_ID", "NAME", "URL", "COMPONENT", "IS_ROUTE", "COMPONENT_NAME", "REDIRECT", "MENU_TYPE", "PERMS", "PERMS_TYPE", "SORT_NO", "ALWAYS_SHOW", "ICON", "IS_LEAF", "KEEP_ALIVE", "HIDDEN", "HIDE_TAB", "DESCRIPTION", "CREATE_BY", "CREATE_TIME", "UPDATE_BY", "UPDATE_TIME", "DEL_FLAG", "RULE_FLAG", "STATUS", "INTERNAL_OR_EXTERNAL") VALUES ('2033751527180857345', '45c966826eeff4c99b8f8ebfe74511fc', '添加部门', NULL, NULL, 0, NULL, NULL, 2, 'system:depart:add', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', TO_TIMESTAMP('2026-03-17 11:45:24', 'SYYYY-MM-DD HH24:MI:SS'), NULL, NULL, 0, 0, '1', 0);
|
||||
|
||||
INSERT INTO "QH_SYW_PERMISSION" ("ID", "PARENT_ID", "NAME", "URL", "COMPONENT", "IS_ROUTE", "COMPONENT_NAME", "REDIRECT", "MENU_TYPE", "PERMS", "PERMS_TYPE", "SORT_NO", "ALWAYS_SHOW", "ICON", "IS_LEAF", "KEEP_ALIVE", "HIDDEN", "HIDE_TAB", "DESCRIPTION", "CREATE_BY", "CREATE_TIME", "UPDATE_BY", "UPDATE_TIME", "DEL_FLAG", "RULE_FLAG", "STATUS", "INTERNAL_OR_EXTERNAL") VALUES ('2033785577039851521', '190c2b43bec6a5f7a4194a85db67d96a', '删除用户角色', NULL, NULL, 0, NULL, NULL, 2, 'system:user:deleteRole', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', TO_TIMESTAMP('2026-03-17 14:00:42', 'SYYYY-MM-DD HH24:MI:SS'), NULL, NULL, 0, 0, '1', 0);
|
||||
|
||||
INSERT INTO "QH_SYW_PERMISSION" ("ID", "PARENT_ID", "NAME", "URL", "COMPONENT", "IS_ROUTE", "COMPONENT_NAME", "REDIRECT", "MENU_TYPE", "PERMS", "PERMS_TYPE", "SORT_NO", "ALWAYS_SHOW", "ICON", "IS_LEAF", "KEEP_ALIVE", "HIDDEN", "HIDE_TAB", "DESCRIPTION", "CREATE_BY", "CREATE_TIME", "UPDATE_BY", "UPDATE_TIME", "DEL_FLAG", "RULE_FLAG", "STATUS", "INTERNAL_OR_EXTERNAL") VALUES ('2033793328256249857', '45c966826eeff4c99b8f8ebfe74511fc', '删除部门', NULL, NULL, 0, NULL, NULL, 2, 'system:depart:deleteBatch', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', TO_TIMESTAMP('2026-03-17 14:31:30', 'SYYYY-MM-DD HH24:MI:SS'), NULL, NULL, 0, 0, '1', 0);
|
||||
|
||||
INSERT INTO "QH_SYW_PERMISSION" ("ID", "PARENT_ID", "NAME", "URL", "COMPONENT", "IS_ROUTE", "COMPONENT_NAME", "REDIRECT", "MENU_TYPE", "PERMS", "PERMS_TYPE", "SORT_NO", "ALWAYS_SHOW", "ICON", "IS_LEAF", "KEEP_ALIVE", "HIDDEN", "HIDE_TAB", "DESCRIPTION", "CREATE_BY", "CREATE_TIME", "UPDATE_BY", "UPDATE_TIME", "DEL_FLAG", "RULE_FLAG", "STATUS", "INTERNAL_OR_EXTERNAL") VALUES ('2033793432971243521', '45c966826eeff4c99b8f8ebfe74511fc', '修改部门', NULL, NULL, 0, NULL, NULL, 2, 'system:depart:edit', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', TO_TIMESTAMP('2026-03-17 14:31:55', 'SYYYY-MM-DD HH24:MI:SS'), NULL, NULL, 0, 0, '1', 0);
|
||||
|
||||
INSERT INTO "QH_SYW_PERMISSION" ("ID", "PARENT_ID", "NAME", "URL", "COMPONENT", "IS_ROUTE", "COMPONENT_NAME", "REDIRECT", "MENU_TYPE", "PERMS", "PERMS_TYPE", "SORT_NO", "ALWAYS_SHOW", "ICON", "IS_LEAF", "KEEP_ALIVE", "HIDDEN", "HIDE_TAB", "DESCRIPTION", "CREATE_BY", "CREATE_TIME", "UPDATE_BY", "UPDATE_TIME", "DEL_FLAG", "RULE_FLAG", "STATUS", "INTERNAL_OR_EXTERNAL") VALUES ('2033835702474895361', NULL, '测试', 'https://www.xjrmyy.com/#/index', 'https://www.xjrmyy.com/#/index', 1, '', NULL, 0, NULL, '0', 1, 0, 'ant-design:aim-outlined', 1, 0, 0, 0, NULL, 'admin', TO_TIMESTAMP('2026-03-17 17:19:53', 'SYYYY-MM-DD HH24:MI:SS'), NULL, NULL, 0, 0, NULL, 0);
|
||||
|
||||
INSERT INTO "QH_SYW_PERMISSION" ("ID", "PARENT_ID", "NAME", "URL", "COMPONENT", "IS_ROUTE", "COMPONENT_NAME", "REDIRECT", "MENU_TYPE", "PERMS", "PERMS_TYPE", "SORT_NO", "ALWAYS_SHOW", "ICON", "IS_LEAF", "KEEP_ALIVE", "HIDDEN", "HIDE_TAB", "DESCRIPTION", "CREATE_BY", "CREATE_TIME", "UPDATE_BY", "UPDATE_TIME", "DEL_FLAG", "RULE_FLAG", "STATUS", "INTERNAL_OR_EXTERNAL") VALUES ('2034879007507951617', '1783054127343742978', '新增', NULL, NULL, 0, NULL, NULL, 2, 'watch:dc_watch_device_version_his:add', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', TO_TIMESTAMP('2026-03-20 14:25:36', 'SYYYY-MM-DD HH24:MI:SS'), NULL, NULL, 0, 0, '1', 0);
|
||||
INSERT INTO "QH_SYW_PERMISSION" ("ID", "PARENT_ID", "NAME", "URL", "COMPONENT", "IS_ROUTE", "COMPONENT_NAME", "REDIRECT", "MENU_TYPE", "PERMS", "PERMS_TYPE", "SORT_NO", "ALWAYS_SHOW", "ICON", "IS_LEAF", "KEEP_ALIVE", "HIDDEN", "HIDE_TAB", "DESCRIPTION", "CREATE_BY", "CREATE_TIME", "UPDATE_BY", "UPDATE_TIME", "DEL_FLAG", "RULE_FLAG", "STATUS", "INTERNAL_OR_EXTERNAL") VALUES ('2034879630936715265', '1783054127343742978', '编辑', NULL, NULL, 0, NULL, NULL, 2, 'watch:dc_watch_device_version_his:edit', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', TO_TIMESTAMP('2026-03-20 14:28:05', 'SYYYY-MM-DD HH24:MI:SS'), NULL, NULL, 0, 0, '1', 0);
|
||||
INSERT INTO "QH_SYW_PERMISSION" ("ID", "PARENT_ID", "NAME", "URL", "COMPONENT", "IS_ROUTE", "COMPONENT_NAME", "REDIRECT", "MENU_TYPE", "PERMS", "PERMS_TYPE", "SORT_NO", "ALWAYS_SHOW", "ICON", "IS_LEAF", "KEEP_ALIVE", "HIDDEN", "HIDE_TAB", "DESCRIPTION", "CREATE_BY", "CREATE_TIME", "UPDATE_BY", "UPDATE_TIME", "DEL_FLAG", "RULE_FLAG", "STATUS", "INTERNAL_OR_EXTERNAL") VALUES ('2034879686771290114', '1783054127343742978', '删除', NULL, NULL, 0, NULL, NULL, 2, 'watch:dc_watch_device_version_his:delete', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', TO_TIMESTAMP('2026-03-20 14:28:18', 'SYYYY-MM-DD HH24:MI:SS'), NULL, NULL, 0, 0, '1', 0);
|
||||
INSERT INTO "QH_SYW_PERMISSION" ("ID", "PARENT_ID", "NAME", "URL", "COMPONENT", "IS_ROUTE", "COMPONENT_NAME", "REDIRECT", "MENU_TYPE", "PERMS", "PERMS_TYPE", "SORT_NO", "ALWAYS_SHOW", "ICON", "IS_LEAF", "KEEP_ALIVE", "HIDDEN", "HIDE_TAB", "DESCRIPTION", "CREATE_BY", "CREATE_TIME", "UPDATE_BY", "UPDATE_TIME", "DEL_FLAG", "RULE_FLAG", "STATUS", "INTERNAL_OR_EXTERNAL") VALUES ('2034879767675219970', '1783054127343742978', '批量删除', NULL, NULL, 0, NULL, NULL, 2, 'watch:dc_watch_device_version_his:deleteBatch', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', TO_TIMESTAMP('2026-03-20 14:28:38', 'SYYYY-MM-DD HH24:MI:SS'), NULL, NULL, 0, 0, '1', 0);
|
||||
INSERT INTO "QH_SYW_PERMISSION" ("ID", "PARENT_ID", "NAME", "URL", "COMPONENT", "IS_ROUTE", "COMPONENT_NAME", "REDIRECT", "MENU_TYPE", "PERMS", "PERMS_TYPE", "SORT_NO", "ALWAYS_SHOW", "ICON", "IS_LEAF", "KEEP_ALIVE", "HIDDEN", "HIDE_TAB", "DESCRIPTION", "CREATE_BY", "CREATE_TIME", "UPDATE_BY", "UPDATE_TIME", "DEL_FLAG", "RULE_FLAG", "STATUS", "INTERNAL_OR_EXTERNAL") VALUES ('2034879833274134529', '1783054127343742978', '导出', NULL, NULL, 0, NULL, NULL, 2, 'watch:dc_watch_device_version_his:exportXls', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', TO_TIMESTAMP('2026-03-20 14:28:53', 'SYYYY-MM-DD HH24:MI:SS'), NULL, NULL, 0, 0, '1', 0);
|
||||
INSERT INTO "QH_SYW_PERMISSION" ("ID", "PARENT_ID", "NAME", "URL", "COMPONENT", "IS_ROUTE", "COMPONENT_NAME", "REDIRECT", "MENU_TYPE", "PERMS", "PERMS_TYPE", "SORT_NO", "ALWAYS_SHOW", "ICON", "IS_LEAF", "KEEP_ALIVE", "HIDDEN", "HIDE_TAB", "DESCRIPTION", "CREATE_BY", "CREATE_TIME", "UPDATE_BY", "UPDATE_TIME", "DEL_FLAG", "RULE_FLAG", "STATUS", "INTERNAL_OR_EXTERNAL") VALUES ('2034879903734247425', '1783054127343742978', '导入', NULL, NULL, 0, NULL, NULL, 2, 'watch:dc_watch_device_version_his:importExcel', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', TO_TIMESTAMP('2026-03-20 14:29:10', 'SYYYY-MM-DD HH24:MI:SS'), NULL, NULL, 0, 0, '1', 0);
|
||||
|
||||
|
||||
|
||||
CREATE TABLE `QH_WAT_VALID` (
|
||||
`id` varchar(36) COLLATE utf8mb4_general_ci NOT NULL,
|
||||
`watch_no` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '工具编码',
|
||||
`valid_flag` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '是否有效',
|
||||
`create_time` datetime DEFAULT NULL COMMENT '创建日期',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `qwv_valid_flag` (`valid_flag`),
|
||||
KEY `qwv_watch_no` (`watch_no`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
|
||||
Binary file not shown.
Reference in New Issue
Block a user