我正在使用MySQL的INFORMATION_SCHEMA模式来自动处理表中的通用列。
一项任务是识别数值列类型和非数值列类型,以便在这两种情况下应用特定的操作。当然,我可以在MySQL中为每一个数据类型定义操作,并以这种方式解决我的问题,但我想知道是否使用了这样的解决方案:
SELECT
NUMERIC_PRECISION
FROM
INFORMATION_SCHEMA.COLUMNS
WHERE
TABLE_SCHEMA='aschema' AND
TABLE_NAME='atable' AND
COLUMN_NAME='acolumn'当横穿表和列时,我感兴趣的两种列之间可能会有大致的分离。
我的目标是有一个真/假标识列是否包含数字数据类型。
任何其他想法都是受欢迎的。
指出缺点也是受欢迎的。
发布于 2015-02-17 02:27:09
我投票给NUMERIC_PRECISION IS NOT NULL。它包括“位”。若要排除“位”,请使用NUMERIC_SCALE IS NOT NULL。如果你想说“枚举”或“年份”是数字,那么就用一个像Dudi's的IN-子句。
发布于 2015-02-16 11:35:05
SELECT [COLUMN_NAME],[DATA_TYPE] FROM INFORMATION_SCHEMA.COLUMNS
WHERE [DATA_TYPE] IN ('int','bigint','smallint','mediumint' 'tinyint','float','numeric')https://stackoverflow.com/questions/28537380
复制相似问题