Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

सभी पूर्णांक कॉलम खोजें जो info_schema का उपयोग करके अपनी सीमा तक पहुँच रहे हैं

मैंने इस कार्य के लिए एक समाधान लिखा है, लेकिन मैं शायद ही अकेला व्यक्ति हूँ जिसने ऐसा कुछ किया हो।

select concat('`', table_schema, '`.`', table_name, '`.`', column_name, '`') as `column`,
  auto_increment as `current_int`, max_int, round((auto_increment/max_int)*100, 2) as `pct_max`
from (select table_schema, table_name, column_name, auto_increment,
  pow(2, case data_type
    when 'tinyint'   then 7
    when 'smallint'  then 15
    when 'mediumint' then 23
    when 'int'       then 31
    when 'bigint'    then 63
    end+(column_type like '% unsigned'))-1 as max_int
  from information_schema.tables t
  join information_schema.columns c using (table_schema,table_name)
  join information_schema.key_column_usage k using (table_schema,table_name,column_name)
  where t.table_schema in ('test')
    and k.constraint_name = 'PRIMARY'
    and k.ordinal_position = 1
    and t.auto_increment is not null
) as dt;

https://github.com/billkarwin/bk -टूल्स/ब्लॉब/मास्टर/पीके-फुल-अनुपात.एसक्यूएल

उस क्वेरी को test . के लिए हार्ड-कोड किया गया है स्कीमा, इसलिए आपको इसे अपने स्वयं के स्कीमा के लिए संपादित करने की आवश्यकता है।

प्रश्न का संक्षिप्त उत्तर "क्या मेरी प्राथमिक कुंजी अतिप्रवाह होने वाली है?" बस इसे BIGINT UNSIGNED में बदलना है अभी व। यह निश्चित रूप से सभ्यता के पतन तक चलेगा।

उसी गिट रेपो में, मेरे पास सभी . की जांच करने के लिए एक और समान स्क्रिप्ट है पूर्णांक कॉलम, न केवल ऑटो-वृद्धि प्राथमिक कुंजी। लेकिन यह अन्य स्तंभों के लिए उतनी चिंता का विषय नहीं है।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मैं इस MySQL तालिका में पंक्तियों की मूल आईडी कैसे प्राप्त कर सकता हूं?

  2. प्राथमिक सूचकांक की पुनर्गणना कैसे करें?

  3. कौन सा बेहतर है एक बड़ी क्वेरी या एकाधिक छोटी क्वेरी?

  4. क्या मैं '%' की तरह जहां कॉल कर सकता हूं, नल मान भी चुनें?

  5. शुरुआती और इंटरमीडिएट के लिए 10 MySQL डेटाबेस साक्षात्कार प्रश्न