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

mysql में चेकसम तालिका से केवल चेकसम (तालिका नहीं) का चयन करें और वापस करें

आप इसे कॉलम, या कॉलम के योग से कर सकते हैं। नीचे मेरी मेज पर एक परीक्षण है।

उपयोगकर्ताओं से सीआरसी के रूप में
SELECT sum(crc32(email)) as crc from users;
+-------------+
| crc         |
+-------------+
| 10679459550 |
+-------------+


select sum(crc32(concat(user_id,first_name,last_name,email,reportingManager))) as crc from users;
+------------+
| crc        |
+------------+
| 7196315383 |
+------------+

संपादित करें

एक संग्रहीत प्रक्रिया में एक डेटाबेस नाम और एक टेबल नाम पारित किया जा रहा है, नीचे सीआरसी वापस कर देगा। यह विशेष INFORMATION_SCHEMA . को जाता है db आपके लिए कॉलम नाम पुनर्प्राप्त करने के लिए, और चेकसम उत्पन्न करने के लिए उन सभी कॉलम और मानों का उपयोग करता है।

संग्रहित प्रक्रिया:

drop procedure if exists getTableCRC32;
DELIMITER $$
create procedure getTableCRC32
(   dbname varchar(80),
    tableName varchar(80)
)
BEGIN
    set @sql1="select GROUP_CONCAT(`column_name` SEPARATOR ',') into @colNames";
    set @sql1=concat(@sql1," FROM `INFORMATION_SCHEMA`.`COLUMNS`");
    set @sql1=concat(@sql1," WHERE `TABLE_SCHEMA`='",dbName,"'");
    set @sql1=concat(@sql1," AND `TABLE_NAME`='",tableName,"'");
    -- select @sql1;
    PREPARE stmt1 FROM @sql1;
    EXECUTE stmt1;
    DEALLOCATE PREPARE stmt1;
    -- select @colNames;
    set @sql2=concat( 'select sum(crc32(concat(',  @colNames, '))) as crc from ',tableName);
    -- select @sql2;
    PREPARE stmt2 FROM @sql2;
    EXECUTE stmt2;
    DEALLOCATE PREPARE stmt2;
END
$$
DELIMITER ;

इसका परीक्षण करें:

call getTableCRC32('so_gibberish','users');
+------------+
| crc        |
+------------+
| 7196315383 |
+------------+
call getTableCRC32('so_gibberish','fish');
+------------+
| crc        |
+------------+
| 3273020843 |
+------------+

crc32 के लिए मैनुअल पेज



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ड्रॉप-डाउन मेनू से चयन करें और पृष्ठ पुनः लोड करें

  2. MySQL में अपरकेस अक्षरों वाली पंक्तियों को खोजने के 3 तरीके

  3. MySQL के साथ ElasticSearch को कैसे एकीकृत करें?

  4. SQL ALTER TABLE सिंटैक्स - DBMS द्वारा सूचीबद्ध

  5. ऑनलाइन होटल बुकिंग में रेस कंडीशन को कैसे रोकें?