【发布时间】:2013-12-03 01:32:16
【问题描述】:
大家好,我正在使用此查询来获取使用自动增量的表的最大值
SELECT table_schema,
table_name,
data_type,
( CASE data_type
WHEN 'tinyint' THEN 255
WHEN 'smallint' THEN 65535
WHEN 'mediumint' THEN 16777215
WHEN 'int' THEN 4294967295
WHEN 'bigint' THEN 18446744073709551615
end >> IF(Locate('unsigned', column_type) > 0, 0, 1) ) AS MAX_VALUE
FROM information_schema.columns
WHERE table_schema NOT IN ( 'MYSQL', 'INFORMATION_SCHEMA', 'PERFORMANCE_SCHEMA'
)
AND extra = 'auto_increment'"
我很难理解 IF 语句的作用。
end >> IF(Locate('unsigned', column_type) > 0, 0, 1) ) AS MAX_VALUE
有什么想法吗??
【问题讨论】:
标签: mysql sql linux bash shell