CREATE TABLE "SZ_DSJ"."FSZ_DIM_AREA_NYNCB_INFO" ( "DAY_ID" VARCHAR(8), "PROV_CODE" VARCHAR(6), "PROV_NAME" VARCHAR(50), "CITY_CODE" VARCHAR(6), "CITY_NAME" VARCHAR(100), "COUNTY_CODE" VARCHAR(10), "COUNTY_NAME" VARCHAR(100), "TOWN_CODE" VARCHAR(20), "TOWN_NAME" VARCHAR(200), "VILLAGE_CODE" VARCHAR(50), "VILLAGE_NAME" VARCHAR(200), "AREA_CODE" VARCHAR(20), "LVL" VARCHAR(1), "REMARK" VARCHAR(500), "UPDATE_DT" VARCHAR(8)) STORAGE(ON "MAIN", CLUSTERBTR) ; COMMENT ON TABLE SZ_DSJ.FSZ_DIM_AREA_NYNCB_INFO IS '行政区划信息-农业农村部'; COMMENT ON COLUMN SZ_DSJ.FSZ_DIM_AREA_NYNCB_INFO."CITY_CODE" IS '市-代码'; COMMENT ON COLUMN SZ_DSJ.FSZ_DIM_AREA_NYNCB_INFO."CITY_NAME" IS '市-名称'; COMMENT ON COLUMN SZ_DSJ.FSZ_DIM_AREA_NYNCB_INFO."COUNTY_CODE" IS '区县-代码'; COMMENT ON COLUMN SZ_DSJ.FSZ_DIM_AREA_NYNCB_INFO."COUNTY_NAME" IS '区县-名称'; COMMENT ON COLUMN SZ_DSJ.FSZ_DIM_AREA_NYNCB_INFO."DAY_ID" IS '数据日期'; COMMENT ON COLUMN SZ_DSJ.FSZ_DIM_AREA_NYNCB_INFO."PROV_CODE" IS '省-代码'; COMMENT ON COLUMN SZ_DSJ.FSZ_DIM_AREA_NYNCB_INFO."PROV_NAME" IS '省-名称'; COMMENT ON COLUMN SZ_DSJ.FSZ_DIM_AREA_NYNCB_INFO."REMARK" IS '备注'; COMMENT ON COLUMN SZ_DSJ.FSZ_DIM_AREA_NYNCB_INFO."TOWN_CODE" IS '街道-代码'; COMMENT ON COLUMN SZ_DSJ.FSZ_DIM_AREA_NYNCB_INFO."TOWN_NAME" IS '街道-名称'; COMMENT ON COLUMN SZ_DSJ.FSZ_DIM_AREA_NYNCB_INFO."UPDATE_DT" IS '更新日期'; COMMENT ON COLUMN SZ_DSJ.FSZ_DIM_AREA_NYNCB_INFO."VILLAGE_CODE" IS '村-代码'; COMMENT ON COLUMN SZ_DSJ.FSZ_DIM_AREA_NYNCB_INFO."VILLAGE_NAME" IS '村-名称'; 帮我改为mysql建表语句,字段名改为小写
时间: 2025-06-04 22:21:24 浏览: 15
### 将SQL建表语句转换为MySQL格式并修改字段名为小写
以下是将给定的SQL建表语句转换为MySQL兼容格式,并将字段名改为小写的详细说明和示例。
#### 转换后的MySQL建表语句
假设原始SQL建表语句如下:
```sql
CREATE TABLE FSZ_DIM_ORG_NYNCB_ACCT_INFO (
DAY_ID VARCHAR(8) COMMENT '数据日期',
PROV_CODE VARCHAR(6) COMMENT '省-代码',
PROV_NAME VARCHAR(50) COMMENT '省-名称',
CITY_CODE VARCHAR(8) COMMENT '市-代码',
CITY_NAME VARCHAR(100) COMMENT '市-名称',
COUNTY_CODE VARCHAR(20) COMMENT '区县-代码',
COUNTY_NAME VARCHAR(100) COMMENT '区县-名称',
TOWN_CODE VARCHAR(20) COMMENT '街道-代码',
TOWN_NAME VARCHAR(200) COMMENT '街道-名称',
VILLAGE_CODE VARCHAR(50) COMMENT '村-代码',
VILLAGE_NAME VARCHAR(200) COMMENT '村-名称',
ADDR VARCHAR(500) COMMENT '地址',
LVL VARCHAR(20) COMMENT '层级',
ORG_NAME VARCHAR(200) COMMENT '集体经济组织名称',
CREDIT_CODE VARCHAR(20) COMMENT '唯一社会信用代码',
REMARK VARCHAR(500) COMMENT '备注',
UPDATE_DT VARCHAR(8) COMMENT '更新日期'
) COMMENT='组织信息-农业农村部-账套';
```
转换后的MySQL建表语句如下:
```sql
CREATE TABLE `sz_dsj`.`fsz_dim_org_nyncb_acct_info` (
`day_id` VARCHAR(8) COMMENT '数据日期',
`prov_code` VARCHAR(6) COMMENT '省-代码',
`prov_name` VARCHAR(50) COMMENT '省-名称',
`city_code` VARCHAR(8) COMMENT '市-代码',
`city_name` VARCHAR(100) COMMENT '市-名称',
`county_code` VARCHAR(20) COMMENT '区县-代码',
`county_name` VARCHAR(100) COMMENT '区县-名称',
`town_code` VARCHAR(20) COMMENT '街道-代码',
`town_name` VARCHAR(200) COMMENT '街道-名称',
`village_code` VARCHAR(50) COMMENT '村-代码',
`village_name` VARCHAR(200) COMMENT '村-名称',
`addr` VARCHAR(500) COMMENT '地址',
`lvl` VARCHAR(20) COMMENT '层级',
`org_name` VARCHAR(200) COMMENT '集体经济组织名称',
`credit_code` VARCHAR(20) COMMENT '唯一社会信用代码',
`remark` VARCHAR(500) COMMENT '备注',
`update_dt` VARCHAR(8) COMMENT '更新日期'
) COMMENT='组织信息-农业农村部-账套' ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
```
#### 转换过程说明
1. **字段名转换为小写**:所有字段名从大写或混合大小写转换为全小写,以符合MySQL推荐的小写命名规范[^3]。
2. **字符集设置**:在MySQL中,使用`DEFAULT CHARSET=utf8mb4`设置字符集以支持更广泛的字符编码[^2]。
3. **注释处理**:MySQL支持在创建表时直接通过`COMMENT`关键字为列和表添加注释。上述语句中已将所有注释内容迁移到MySQL的`COMMENT`属性中。
4. **存储引擎**:默认使用`InnoDB`存储引擎,确保事务支持和更高的可靠性。
#### 自动生成修改脚本
如果需要批量生成修改脚本,可以使用以下SQL查询生成:
```sql
SELECT CONCAT(
'ALTER TABLE ', TABLE_NAME,
' CHANGE COLUMN ', COLUMN_NAME,
' ', LOWER(COLUMN_NAME), ' ', COLUMN_TYPE,
IF(IS_NULLABLE = 'YES', ' NULL', ' NOT NULL'),
IF(COLUMN_DEFAULT IS NOT NULL, CONCAT(' DEFAULT ', COLUMN_DEFAULT), ''),
IF(CHARACTER_SET_NAME IS NOT NULL, CONCAT(' CHARACTER SET ', CHARACTER_SET_NAME), ''),
IF(COLLATION_NAME IS NOT NULL, CONCAT(' COLLATE ', COLLATION_NAME), ''),
IF(COLUMN_COMMENT <> '', CONCAT(' COMMENT ''', COLUMN_COMMENT, ''''), ''),
';'
) AS '修改脚本'
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'FSZ_DIM_ORG_NYNCB_ACCT_INFO';
```
此查询将生成一系列`ALTER TABLE`语句,用于将字段名转换为小写,同时保留字段的其他属性,如是否允许为空、默认值、字符集等[^2]。
#### 注意事项
- 在执行批量修改之前,建议备份数据库以防止意外数据丢失。
- 如果表中存在外键约束,可能需要先禁用或删除这些约束,完成修改后再重新启用。
- 字段名的大小写转换需谨慎,尤其是在已有数据的情况下,可能需要额外的数据迁移步骤。
---
###
阅读全文
相关推荐















