Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL में टेबल की प्राइमरी की कैसे रीसेट करें?

AUTO_INCREMENT को 1 पर रीसेट करें

MySQL में प्राइमरी की (आमतौर पर AUTO_INCREMENT कॉलम) को **1 से पुनः शुरू** करने के लिए ALTER TABLE के साथ AUTO_INCREMENT = 1 सेट करें।

सिंटैक्स

ALTER TABLE yourTableName AUTO_INCREMENT = 1;

व्यावहारिक उदाहरण

1. AUTO_INCREMENT टेबल बनाएं

mysql> CREATE TABLE ResetPrimaryKey (
    -> Id INT AUTO_INCREMENT,
    -> PRIMARY KEY(Id)
    -> );
Query OK, 0 rows affected (0.59 sec)

2. कुछ रिकॉर्ड डालें

mysql> INSERT INTO ResetPrimaryKey VALUES();
mysql> INSERT INTO ResetPrimaryKey VALUES();
mysql> INSERT INTO ResetPrimaryKey VALUES();
mysql> INSERT INTO ResetPrimaryKey VALUES();

3. वर्तमान स्थिति (1-4)

mysql> SELECT * FROM ResetPrimaryKey;
+----+
| Id |
+----+
| 1  |
| 2  |
| 3  |
| 4  |
+----+
4 rows in set (0.00 sec)

4. AUTO_INCREMENT रीसेट करें

mysql> ALTER TABLE ResetPrimaryKey AUTO_INCREMENT = 1;
Query OK, 0 rows affected (0.21 sec)
Records: 0 Duplicates: 0 Warnings: 0

5. पुष्टि करें

mysql> DESC ResetPrimaryKey;
+-------+---------+------+-----+---------+----------------+
| Field | Type    | Null | Key | Default | Extra          |
+-------+---------+------+-----+---------+----------------+
| Id    | int(11) | NO   | PRI | NULL    | auto_increment |
+-------+---------+------+-----+---------+----------------+
1 row in set (0.11 sec)

⚠️ महत्वपूर्ण व्यवहार

  • खाली टेबल पर: अगला इंसर्ट 1 से शुरू होगा
  • डेटा वाली टेबल पर: AUTO_INCREMENT = 1 सेट करने से **अगला मान MAX(id)+1** ही होगा (1 नहीं)
  • MySQL कभी भी मौजूदा डेटा से कम AUTO_INCREMENT अनुमति नहीं देता

वास्तव में रीसेट करने के विकल्प

विकल्प 1: TRUNCATE (सभी डेटा हटाता है)

TRUNCATE TABLE ResetPrimaryKey;

टेबल खाली करता है और AUTO_INCREMENT को 1 रीसेट करता है।

विकल्प 2: डेटा रखते हुए रीसेट (जटिल)

-- 1. नई टेबल बनाएं
CREATE TABLE NewTable LIKE ResetPrimaryKey;

-- 2. डेटा कॉपी करें (ID के बिना)
INSERT INTO NewTable SELECT * FROM ResetPrimaryKey;

-- 3. पुरानी टेबल ड्रॉप करें, नई का नाम बदलें
DROP TABLE ResetPrimaryKey;
RENAME TABLE NewTable TO ResetPrimaryKey;

विकल्प 3: ALTER TABLE ... AUTO_INCREMENT (खाली टेबल पर)

यदि टेबल खाली है या TRUNCATE के बाद:

ALTER TABLE ResetPrimaryKey AUTO_INCREMENT = 1;

वर्तमान AUTO_INCREMENT मान देखें

SELECT AUTO_INCREMENT 
FROM INFORMATION_SCHEMA.TABLES 
WHERE TABLE_SCHEMA = 'yourDB' AND TABLE_NAME = 'ResetPrimaryKey';
  1. - MySQL में प्राइमरी की कैसे ड्रॉप करें?

    प्राइमरी की ड्रॉप करने के लिए, पहले ALTER का उपयोग करके टेबल को बदलें। इसके साथ, नीचे दिखाए अनुसार की ड्रॉप करने के लिए DROP का उपयोग करें: सिंटैक्स alter table yourTableName drop primary key; आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable -> ( -> StudentId int NOT NULL, -> S

  1. - MySQL में प्राइमरी की कैसे रीसेट करें?

    MySQL में ऑटो-इन्क्रीमेंट प्राइमरी की को रीसेट (1 से शुरू) करने के लिए, TRUNCATE TABLE का उपयोग करें जो डेटा हटाता है और ऑटो-इन्क्रीमेंट काउंटर रीसेट करता है, या ALTER TABLE से मैन्युअली सेट करें। विधि 1: TRUNCATE TABLE (सबसे सरल, डेटा हटाता है) टेबल बनाएं: mysql> CREATE TABLE DemoTable1929 (

  1. - MySQL में प्राइमरी की को कई टेबल में फॉरेन की के रूप में कैसे रेफ़र करें?

    ALTER TABLE ... ADD CONSTRAINT alter table yourSecondTableName add constraint `yourConstraintName` foreign key(`yourSecondTableNamePrimaryKey`) references yourFirstTableName(yourFirstTablePrimaryKeyColumnName); उदाहरण alter table demo66 add constraint `id_fk` foreign key(`user_id`) references