从 .csv 文件确定最佳列宽

hlo*_*kha 5 mysql datatypes import

我想将 .CSV 文件导入 MySQL 表。我想根据 CSV 文件中包含的实际数据确定要使用的最佳列宽。是否有任何脚本或实用程序可以完成此操作?

Cri*_*rta 0

PROCEDURE ANALYSE()可以帮助你

您可以按照以下步骤尝试一些复杂的方法:

  • 将 file.csv 加载到通用表“myTable”中,其中每个字段都是 varchar
  • 跑过select * from myTable PROCEDURE ANALYSE()

然后分析输出Optimal_fieldtype并评估建议的列类型

这是输出的示例

mysql select * from myTable PROCEDURE ANALYSE()\G
--------------------------- 1. row ---------------------------
             Field_name: myTable.fieldA
              Min_value: sample sample
              Max_value: omit
             Min_length: 4
             Max_length: 126
       Empties_or_zeros: 0
                  Nulls: 0
Avg_value_or_avg_length: 49.3771
                    Std: NULL
      Optimal_fieldtype: VARCHAR(126) NOT NULL
--------------------------- 2. row ---------------------------
             Field_name: myTable.fieldB
              Min_value: 1
              Max_value: 22043
             Min_length: 1
             Max_length: 5
       Empties_or_zeros: 7888
                  Nulls: 0
Avg_value_or_avg_length: 27.6984
                    Std: 168.4809
      Optimal_fieldtype: SMALLINT(5) UNSIGNED NOT NULL
Run Code Online (Sandbox Code Playgroud)

根据输出建议和您的要求更改您的表。