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

MySQL दो टेबल में ऑटोइनक्रिकमेंट गैप को ठीक करता है

ALTER TABLE table2
ADD FOREIGN KEY FK_IMAGE (id_image)
REFERENCES table1 (id_image)
ON DELETE CASCADE
ON UPDATE CASCADE;

SET @currentRow = 0;

UPDATE table1 INNER JOIN (
    SELECT @currentRow := @currentRow + 1 AS id_image_new, id_image AS id_image_old
    FROM table1
    ORDER BY id_image ASC) t on t.id_image_old = table1.id_image
SET table1.id_image = t.id_image_new;

ALTER TABLE table1 AUTO_INCREMENT = 1;

FK तदनुसार आपकी दूसरी तालिका की आईडी को स्वचालित रूप से अपडेट कर देगा।

मुझे बिल्कुल भी यकीन नहीं है, लेकिन MySQL के कुछ पुराने संस्करणों में, उस तालिका को अपडेट करें जिसे आप अपडेट के सबक्वायरी में संदर्भित कर रहे हैं, क्रैश हो सकता है। यदि ऐसा है, तो बस एक दूसरी तालिका बनाएं और उसे भरें (सम्मिलित करें), फिर पुरानी को हटा दें और नई का नाम बदलें।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. org.hibernate.MappingException:संपत्ति मानचित्रण में ENUM इकाई में स्तंभों की संख्या गलत है

  2. स्थानीय MySQL डेटाबेस से कनेक्ट करने के लिए पायथन 3.2 स्क्रिप्ट

  3. mysql:किसी दिए गए डेटाबेस के सभी खुले कनेक्शन देखें?

  4. कुछ मानों को संयोजित करते हुए एकाधिक तालिकाओं से एकल पंक्ति में डेटा प्राप्त करना

  5. जीपीएस की गणना त्रिज्या समन्वय करती है