จะรีเซ็ต AUTO_INCREMENT ใน MySQL ได้อย่างไร?


1246

ฉันจะรีเซ็ตAUTO_INCREMENTของสนามหรือไม่?
ฉันต้องการที่จะเริ่มนับจาก1อีกครั้ง


9
คุณอาจได้รับการตอบสนองที่ดีขึ้นบนเว็บไซต์สำหรับ DBAs ที่dba.stackexchange.com
Rowland Shaw

80
คุณอาจต้องการล้างตารางด้วย:TRUNCATE TABLE yourTableName;
Konerak


3
ใช่ตารางการตัดปลายจะดีที่สุดในกรณีนี้ นอกจากนี้ยังรีเซ็ตการเพิ่มอัตโนมัติเริ่มเป็น 1
raidsan

2
บางครั้งคุณไม่ได้รับอนุญาตให้ตัดทอนเนื่องจากต้องใช้สิทธิ์ DROP
ลุคลูกพี่ลูกน้อง

คำตอบ:


2024

คุณสามารถรีเซ็ตตัวนับด้วย:

ALTER TABLE tablename AUTO_INCREMENT = 1

สำหรับ InnoDB คุณไม่สามารถตั้งauto_incrementค่าต่ำกว่าหรือเท่ากับดัชนีสูงสุดในปัจจุบัน (อ้างจากViralPatel ):

โปรดทราบว่าคุณไม่สามารถรีเซ็ตตัวนับเป็นค่าที่น้อยกว่าหรือเท่ากับค่าใด ๆ ที่ใช้ไปแล้ว สำหรับ MyISAM หากค่าน้อยกว่าหรือเท่ากับค่าสูงสุดในปัจจุบันในคอลัมน์ AUTO_INCREMENT ค่าจะถูกรีเซ็ตเป็นค่าสูงสุดในปัจจุบันบวกหนึ่ง สำหรับ InnoDB หากค่าน้อยกว่าค่าสูงสุดปัจจุบันในคอลัมน์จะไม่มีข้อผิดพลาดเกิดขึ้นและค่าลำดับปัจจุบันจะไม่เปลี่ยนแปลง

ดูวิธีการรีเซ็ต MySQL AutoIncrement โดยใช้ค่า MAX จากตารางอื่น เกี่ยวกับวิธีรับค่าที่ยอมรับได้แบบไดนามิก


8
สิ่งนี้อาจใช้เวลาตลอดไปสำหรับตารางที่เต็มไป ระวังด้วย: stackoverflow.com/questions/2681869/…
BT

52
นี้เป็นcircular reference
Besnik

5
คุณหมายถึงcurcular referenceอะไร
Niels

73
โปรดจำไว้ว่า MySql จะสร้างตารางใหม่ด้วยโครงสร้างเดียวกันและค่า auto_increment ใหม่และคัดลอกระเบียนทั้งหมดจากตารางต้นฉบับให้วางต้นฉบับและเปลี่ยนชื่อใหม่ สิ่งนี้อาจมีผลกระทบต่อประสิทธิภาพอย่างมาก (และพื้นที่ดิสก์) ในสภาพแวดล้อมการผลิตหากตารางมีขนาดใหญ่
Rostol

6
คำตอบที่ได้รับคะแนนโหวตนี้ใช้งานได้จริงหรือไม่ถ้าคุณมีคอลัมน์ AUTOINCREMENT อยู่แล้ว? อ้างอิงจากเอกสาร MySQL 5.1: "คุณไม่สามารถรีเซ็ตตัวนับเป็นค่าน้อยกว่าหรือเท่ากับค่าใด ๆ ที่ใช้ไปแล้วสำหรับ MyISAM หากค่าน้อยกว่าหรือเท่ากับค่าสูงสุดในคอลัมน์ AUTO_INCREMENT ในปัจจุบัน ค่าจะถูกรีเซ็ตเป็นค่าสูงสุดปัจจุบันบวกหนึ่งสำหรับ InnoDB หากค่าน้อยกว่าค่าสูงสุดปัจจุบันในคอลัมน์จะไม่มีข้อผิดพลาดเกิดขึ้นและค่าลำดับปัจจุบันจะไม่เปลี่ยนแปลง " ฟังดูเหมือนไม่มีอะไรจะเกิดขึ้นที่นี่หากการสร้างภาพอัตโนมัติมีค่ามากกว่า 1
lreeder

159
ALTER TABLE tablename AUTO_INCREMENT = 1

7
ฉันขอทราบความแตกต่างระหว่างคำตอบของคุณกับคำตอบก่อนหน้านี้ได้อย่างไร
Praveen Srinivasan

30
@PraveenSrinivasan ไม่แตกต่างกันเราเพิ่มพวกเขาในเวลาเดียวกัน
boobiq

79
โดยส่วนตัวแล้วฉันคิดว่ามันเป็นสิ่งที่สวยงามที่ทั้งสองคำตอบสำหรับคำถาม AUTO_INCREMENT มีการชนกันพร้อมกัน :-)
Mark Goldfain

@ MarkGoldfain ใช่มันเป็น!
ncomputers

การเกิดขึ้นพร้อมกันจะทำให้เงื่อนไขการแข่งขัน mysql ...
Syamsoul Azrien

81
SET  @num := 0;

UPDATE your_table SET id = @num := (@num+1);

ALTER TABLE your_table AUTO_INCREMENT =1;

ฉันคิดว่ามันจะทำ


2
คำถามนี้มีคำตอบที่เหมาะสมแล้ว นอกจากนี้คุณUPDATEจะอัปเดตค่าทั้งหมดในidคอลัมน์
มิต

2
OP ไม่ได้ระบุว่าพวกเขากำลังเรียงลำดับแถวที่มีอยู่ใหม่
มิต

คำตอบที่สมบูรณ์และสมบูรณ์แบบ แต่ฉันมีข้อสงสัยว่าเมื่อเราใส่ค่าใหม่สิ่งที่จะเป็นค่า PK ของค่านั้น ไม่ว่าจะเป็น 1 หรือ PK ถัดไปหรือไม่
Prifulnath

ใช่นี่เป็นทางออกที่ดีที่สุด แต่คุณอาจต้องการล็อคตารางหากมีข้อมูลกำลังเขียนอยู่เช่นตารางการผลิต
wavvves

มีประโยชน์มากฉันมี requirment เดียวกับที่ฉันต้องรีเซ็ตการเพิ่มอัตโนมัติเพื่อเริ่มต้นด้วย 1 เพียงสองคำสั่งแรกที่ช่วย
LOKENDRA


40

ป้อนคำอธิบายรูปภาพที่นี่มีวิธีที่ง่ายมากกับ phpmyadmin ภายใต้แท็บ "การดำเนินการ" คุณสามารถตั้งค่าในตัวเลือกตารางโดยอัตโนมัติเพิ่มจำนวนที่คุณต้องการ


คุณต้องเริ่มบริการ mysql / เซิร์ฟเวอร์ใหม่หลังจากนั้น
Cyber

1
ฉันไม่คิดว่าคุณจะต้องรีสตาร์ทเซิร์ฟเวอร์หลังจากนั้น PhpAdmin จะเรียกใช้คำสั่งเพื่อเปลี่ยนจุดเริ่มต้นที่เพิ่มขึ้น
คารีม

คุณไม่จำเป็นต้องรีสตาร์ทมันจะมีผลจากการแทรกครั้งต่อไป
IlludiumPu36

36

ทางออกที่ดีที่สุดที่เหมาะกับฉัน:

ALTER TABLE my_table MODIFY COLUMN ID INT(10) UNSIGNED;
COMMIT;
ALTER TABLE my_table MODIFY COLUMN ID INT(10) UNSIGNED AUTO_INCREMENT;
COMMIT;

มันเร็วใช้ได้กับ innoDB และฉันไม่จำเป็นต้องรู้ค่าสูงสุดในปัจจุบัน! วิธีนี้ตัวนับการเพิ่มอัตโนมัติจะรีเซ็ตและจะเริ่มโดยอัตโนมัติจากค่าสูงสุดที่มีอยู่


1
มันจะตั้งค่า NULL auto-inc ใน information_schema; ตรวจสอบSELECT AUTO_INCREMENT FROM information_schema.tables WHERE table_name = 'my_table' AND table_schema = DATABASE( ) ;
K-Gun

1
ฉันทดสอบในเวอร์ชัน 5.6.x แล้วมันใช้งานได้ดีและการสืบค้นโดย Kerem Güneşส่งคืนค่าสูงสุดบวกหนึ่งค่าไม่เป็นโมฆะตามที่ระบุไว้ (อาจถูกตั้งค่าเป็น null หลังจากการสืบค้นแรก แต่ไม่ใช่หลังจากการสืบค้นครั้งที่สอง) ฉันเชื่อว่านี่เป็นทางออกที่ดีที่สุดสำหรับ InnoDB
Frank Forte

เช่นเดียวกับการตั้งค่าที่ชัดเจน: "สร้างตารางใหม่โดยมีโครงสร้างเดียวกันและค่า auto_increment ใหม่และคัดลอกระเบียนทั้งหมดจากตารางต้นฉบับให้วางต้นฉบับและเปลี่ยนชื่อใหม่ซึ่งอาจส่งผลกระทบต่อประสิทธิภาพอย่างมาก (และพื้นที่ดิสก์) บนสภาพแวดล้อมการผลิตหากตารางมีขนาดใหญ่ " แต่แย่กว่านั้นมากเพราะต้องใช้สำเนาตารางเต็มสองครั้ง
Enyby

ผมยืนยันว่างานนี้สำหรับรุ่น5.6.15ในขณะที่ALTER TABLE tablename AUTO_INCREMENT = 1ไม่ได้
Nae

24

คำตอบที่ให้คะแนนสูงสุดสำหรับคำถามนี้ทุกคนขอแนะนำ "แก้ไข yourtable AUTO_INCREMENT = ค่า" อย่างไรก็ตามสิ่งนี้ใช้ได้เฉพาะเมื่อvalueมีการเปลี่ยนแปลงมากกว่าค่าสูงสุดปัจจุบันของคอลัมน์การสร้างอัตโนมัติ ตามเอกสาร MySQL 8 :

คุณไม่สามารถรีเซ็ตตัวนับเป็นค่าที่น้อยกว่าหรือเท่ากับค่าที่ใช้งานอยู่ในปัจจุบัน สำหรับทั้ง InnoDB และ MyISAM หากค่าน้อยกว่าหรือเท่ากับค่าสูงสุดในคอลัมน์ AUTO_INCREMENT ปัจจุบันค่าจะถูกรีเซ็ตเป็นค่าคอลัมน์ AUTO_INCREMENT สูงสุดในปัจจุบันบวกหนึ่ง

โดยพื้นฐานแล้วคุณสามารถแก้ไข AUTO_INCREMENT เพื่อเพิ่มมูลค่าของคอลัมน์การสร้างอัตโนมัติไม่รีเซ็ตเป็น 1 เนื่องจาก OP ถามในส่วนที่สองของคำถาม สำหรับตัวเลือกที่ช่วยให้คุณตั้งจริง AUTO_INCREMENT ลงจากสูงสุดปัจจุบันจะดูที่สั่งซื้อใหม่ / การตั้งค่าที่เพิ่มขึ้นรถยนต์คีย์หลัก


20

การเพิ่มการอัปเดตเนื่องจากฟังก์ชันการทำงานเปลี่ยนไปใน MySQL 5.6 ในฐานะของ MySQL 5.6 คุณสามารถใช้ ALTER TABLE อย่างง่าย ๆ กับ InnoDB:

ALTER TABLE tablename AUTO_INCREMENT = 1;

เอกสารได้รับการอัพเดตเพื่อสะท้อนสิ่งนี้:

http://dev.mysql.com/doc/refman/5.6/en/alter-table.html

การทดสอบของฉันยังแสดงให้เห็นว่าตารางไม่ได้คัดลอกค่าเพียงแค่เปลี่ยน


19

มีตัวเลือกที่ดีในวิธีการตั้งค่าคอลัมน์ MySQL ใหม่อัตโนมัติ

โปรดทราบว่าALTER TABLE tablename AUTO_INCREMENT = value;ไม่สามารถใช้งานกับ InnoDB ได้


8
คุณจะทำสิ่งนี้กับ InnoDB ได้อย่างไร?
EmptyArsenal

4
ทำงานได้ดีสำหรับฉันโดยใช้ MySQL v 5.6.2
Eddie B

ฉันมีปัญหาที่คล้ายกันซึ่งเขตข้อมูลการบันทึกอัตโนมัติไม่ได้รับการรีเซ็ตหลังจากฉันลบบันทึกจากตาราง TRUNCATE ดูเหมือนจะใช้งานได้ ฉันคิดว่าวิธีการแก้ปัญหาด้านล่างสำหรับการลบ autoincrement จากนั้นการนำไปใช้ใหม่อาจช่วยบรรเทาปัญหานี้ได้
Craig Maloney

@CraigMaloney - DELETE(หรือROLLBACK) จะไม่กู้คืนรหัส ข้อยกเว้นหนึ่ง: หลังจากที่มีการรีสตาร์ท (หรือความผิดพลาด) รหัสต่อไปคือการคำนวณจะเป็นMAX(id)+1จึงมีประสิทธิภาพการกู้คืนรหัสลบที่สิ้นสุด ข้อยกเว้น: MySQL 8.0 ปล่อยรหัสเหล่านั้นไม่ได้ใช้
Rick James

12
ALTER TABLE news_feed DROP id

ALTER TABLE news_feed ADD  id BIGINT( 200 ) NOT NULL AUTO_INCREMENT FIRST ,ADD PRIMARY KEY (id)

ฉันใช้สิ่งนี้ในสคริปต์ของฉันบางส่วน, ฟิลด์ id ถูกดร็อปจากนั้นเพิ่มกลับด้วยการตั้งค่าก่อนหน้า, ฟิลด์ที่มีอยู่ทั้งหมดในตารางฐานข้อมูลจะเต็มไปด้วยค่าการเพิ่มอัตโนมัติใหม่, ซึ่งควรทำงานกับ InnoDB

โปรดทราบว่าเขตข้อมูลทั้งหมดในตารางจะถูกนับใหม่และจะมีรหัสอื่น ๆ !!!


3
ฉันอยากได้อะไรแบบนี้! แต่เป็นคำเตือนพิเศษ; นี่จะทำให้กุญแจต่างประเทศของคุณแตกหัก
NoobishPro

12

คุณสามารถใช้TRUNCATEตารางไวยากรณ์ดังนี้: TRUNCATE TABLE table_name

ระวัง!! TRUNCATE TABLE your_tableจะลบทุกอย่างในของคุณyour_table!!


14
โปรแกรมเมอร์ใหม่โปรดระวังว่าTRUNCATEจะลบแถวทั้งหมดของคุณในตารางที่ระบุด้วย!
Zanshin13

1
ความคิดเห็นข้างต้นควรแทรกในคำตอบหรืออย่างน้อยคำอธิบายเกี่ยวกับการใช้งานจริงของการตัดทอน
Lucas Kauz

TRUNCATEจะรีเซ็ตauto_incrementฟิลด์ด้วยหรือไม่ กรณีใช้ของฉันคือการล้างข้อมูลเก่าในตารางและเริ่มรหัสจาก 1 อีกครั้งสำหรับข้อมูลใหม่ (ลองนึกภาพตารางการล้างสำหรับการใช้งานที่เหมาะสมหลังจากการทดสอบเสร็จสมบูรณ์) ฉันคิดว่าฉันจะต้องไปDROPทั้งโต๊ะและCREATEอีกครั้ง
ADTC

ใช่ TRUNCATE ทำงานเหมือนการรีเซ็ตบนโต๊ะ ไม่เป็นความจริงเลยหากว่าตารางถูกเปลี่ยนแปลงตั้งแต่สร้างขึ้นการเปลี่ยนแปลงเหล่านั้นจะไม่ถูกรีเซ็ต ฉันคิดว่ามันใกล้กว่าที่จะส่งออกโครงสร้างตารางและและใช้การส่งออกเพื่อสร้างตารางใหม่กว่าการรีเซ็ตจริง
Chris

ใช่ @ADTC หากคุณต้องการที่จะเก็บในปัจจุบันauto_incrementค่าใช้แทนDELETE FROM TRUNCATE
TRiG

8

มันเป็นตารางที่ว่างเปล่า:

ALTER TABLE `table_name` AUTO_INCREMENT = 1;

หากคุณมีข้อมูล แต่ต้องการเก็บไว้เป็นระเบียบฉันขอแนะนำให้ใช้สิ่งนี้:

ALTER TABLE `table_name` DROP `auto_colmn`;
ALTER TABLE `table_name` ADD  `auto_colmn` INT( {many you want} ) NOT NULL AUTO_INCREMENT FIRST ,ADD PRIMARY KEY (`auto_colmn`);

ง่ายต่อการใช้สิ่งนี้
Abdul Aziz Al Basyir

สิ่งนี้ใช้ได้กับข้อมูลของเรา จะรีเซ็ตแถวเป็นดัชนีถัดไป ขอบคุณ!
Dazzle

urwell @ Dazzle!
Abdul Aziz Al Basyir

5

นี่คือวิธีแก้ไขปัญหาของฉัน แต่ฉันจะไม่แนะนำให้ทำเช่นนี้หากคอลัมน์ของคุณมีข้อ จำกัด หรือมีการเชื่อมต่อเป็น foreign key ไปยังตารางอื่น ๆ เนื่องจากจะมีผลเสียหรือจะไม่ทำงาน

> แรก: วางคอลัมน์

ALTER TABLE tbl_name DROP COLUMN column_id

> ที่สอง: สร้างคอลัมน์ขึ้นใหม่และตั้งเป็น FIRST หากคุณต้องการให้เป็นคอลัมน์แรกที่ฉันถือว่า

ALTER TABLE tbl_access ADD COLUMN `access_id` int(10) NOT NULL PRIMARY KEY AUTO_INCREMENT FIRST

มันใช้งานได้ดี!


3

ในฐานะของ MySQL 5.6 วิธีการด้านล่างใช้งานได้เร็วขึ้นเนื่องจากDDL ออนไลน์ (หมายเหตุalgorithm=inplace):

alter table tablename auto_increment=1, algorithm=inplace;



1

ฉันพยายามเปลี่ยนตารางและตั้งค่า auto_increment เป็น 1 แต่ไม่ได้ผล ฉันตัดสินใจที่จะลบชื่อคอลัมน์ที่ฉันเพิ่มขึ้นแล้วสร้างคอลัมน์ใหม่ด้วยชื่อที่คุณต้องการและตั้งคอลัมน์ใหม่นั้นให้เพิ่มขึ้นจากการโจมตี


คุณอธิบายได้ไหมว่าคุณทำสิ่งนั้นได้อย่างไร
MZaragoza

@MZaragoza เพียงวางคอลัมน์เก่าที่ไม่มี AI จากนั้นสร้างคอลัมน์ใหม่ที่เปิดใช้งาน AI
andromeda

คุณสามารถอัปเดตคำตอบเพื่อแสดงสิ่งนี้ได้ไหม ฉันจะขอบคุณมันจริงๆ
MZaragoza

1

ตัวนับการเพิ่มอัตโนมัติสำหรับตารางสามารถตั้งค่าได้อีกสองวิธี:

  1. โดยการดำเนินการแบบสอบถามเช่นเดียวกับคนอื่น ๆ อธิบายแล้ว:

    ALTER TABLE <table_name> AUTO_INCREMENT=<table_id>;

  2. การใช้ Workbench หรือเครื่องมือออกแบบฐานข้อมูลภาพอื่น ๆ ฉันจะแสดงใน Workbench ว่าเป็นอย่างไร - แต่ไม่ควรแตกต่างกันมากในเครื่องมืออื่นเช่นกัน โดยคลิกขวาบนตารางที่ต้องการและเลือกAlter tableจากเมนูบริบท ที่ด้านล่างคุณสามารถเห็นตัวเลือกที่มีทั้งหมดสำหรับการเปลี่ยนแปลงตาราง เลือกOptionsและคุณจะได้รับแบบฟอร์มนี้: ป้อนคำอธิบายรูปภาพที่นี่

    จากนั้นเพียงตั้งค่าที่ต้องการในฟิลด์Auto incrementตามที่แสดงในภาพ โดยทั่วไปจะดำเนินการค้นหาที่แสดงในตัวเลือกแรก


0

หากต้องการอัปเดตล่าสุดพร้อมรหัสเดียว

 ALTER TABLE table_name AUTO_INCREMENT = 
 (SELECT (id+1) id FROM table_name order by id desc limit 1);


0

ฉัน googled และพบคำถามนี้ แต่คำตอบที่ฉันต้องการจริงๆตรงตามเกณฑ์สองข้อ:

  1. ใช้แบบสอบถาม MySQL อย่างหมดจด
  2. รีเซ็ตตารางที่มีอยู่โดยอัตโนมัติเพิ่มขึ้นเป็นสูงสุด (id) + 1

เนื่องจากฉันไม่พบสิ่งที่ฉันต้องการที่นี่ฉันจึงได้คำตอบจากคำตอบที่หลากหลายและแบ่งปันได้ที่นี่

สิ่งที่ควรทราบ:

  1. ตารางที่เป็นปัญหาคือ InnoDB
  2. ตารางใช้ฟิลด์ที่idมีประเภทเป็นintคีย์หลัก
  3. วิธีเดียวในการทำสิ่งนี้อย่างหมดจดใน MySQL คือการใช้ขั้นตอนการจัดเก็บ
  4. รูปภาพของฉันด้านล่างใช้ SequelPro เป็น GUI คุณควรจะปรับมันตามตัวแก้ไข MySQL ที่คุณต้องการ
  5. ฉันได้ทดสอบสิ่งนี้บน MySQL Ver 14.14 Distrib 5.5.61 สำหรับ debian-linux-gnu แล้ว

ขั้นตอนที่ 1: สร้างกระบวนงานที่เก็บไว้

สร้างกระบวนงานที่เก็บไว้เช่นนี้:

DELIMITER //
CREATE PROCEDURE reset_autoincrement(IN tablename varchar(200))
BEGIN

      SET @get_next_inc = CONCAT('SELECT @next_inc := max(id) + 1 FROM ',tablename,';');
      PREPARE stmt FROM @get_next_inc; 
      EXECUTE stmt; 
      SELECT @next_inc AS result;
      DEALLOCATE PREPARE stmt; 

      set @alter_statement = concat('ALTER TABLE ', tablename, ' AUTO_INCREMENT = ', @next_inc, ';');
      PREPARE stmt FROM @alter_statement;
      EXECUTE stmt;
      DEALLOCATE PREPARE stmt;
END //
DELIMITER ;

จากนั้นเรียกใช้

ก่อนเรียกใช้จะมีลักษณะเช่นนี้เมื่อคุณดูใน Stored Procedure ในฐานข้อมูลของคุณ

ป้อนคำอธิบายรูปภาพที่นี่

เมื่อฉันเรียกใช้ฉันเพียงเลือกกระบวนงานที่เก็บไว้แล้วกดเรียกใช้ตัวเลือก

ป้อนคำอธิบายรูปภาพที่นี่

หมายเหตุ: ส่วนของตัวคั่นมีความสำคัญ ดังนั้นหากคุณคัดลอกและวางจากคำตอบที่เลือกสูงสุดในคำถามนี้พวกเขามีแนวโน้มที่จะไม่ทำงานด้วยเหตุผลนี้

หลังจากที่ฉันเรียกใช้แล้วฉันควรเห็นขั้นตอนการจัดเก็บ

ป้อนคำอธิบายรูปภาพที่นี่

หากคุณต้องการเปลี่ยนขั้นตอนการจัดเก็บคุณต้องลบขั้นตอนการจัดเก็บจากนั้นเลือกเพื่อเรียกใช้อีกครั้ง

ขั้นตอนที่ 2: เรียกใช้กระบวนงานที่เก็บไว้

คราวนี้คุณสามารถใช้การสืบค้น MySQL ปกติได้

call reset_autoincrement('products');

มีพื้นเพมาจากบันทึกการสืบค้น SQL ของฉันเองในhttps://simkimsia.com/library/sql-queries/#mysql-reset-autoincและปรับใช้สำหรับ StackOverflow



-1

ลองเรียกใช้แบบสอบถามนี้

 ALTER TABLE tablename AUTO_INCREMENT = value;

หรือลองใช้แบบสอบถามนี้เพื่อเพิ่มการรีเซ็ตอัตโนมัติ

 ALTER TABLE `tablename` CHANGE `id` `id` INT(10) UNSIGNED NOT NULL;

และตั้งค่าการเพิ่มอัตโนมัติแล้วเรียกใช้แบบสอบถามนี้

  ALTER TABLE `tablename` CHANGE `id` `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT;

-2

ฉันขอแนะนำให้คุณไปที่ Query Browser และทำสิ่งต่อไปนี้:

  1. ไปที่สกีมาและค้นหาตารางที่คุณต้องการแก้ไข
  2. คลิกขวาและเลือกคัดลอกคำสั่งสร้าง
  3. เปิดแท็บผลลัพธ์แล้ววางคำสั่งสร้างคำสั่ง
  4. ไปที่บรรทัดสุดท้ายของคำสั่งสร้างและค้นหา Auto_Increment = N, (โดยที่ N คือหมายเลขปัจจุบันสำหรับฟิลด์ auto_increment)
  5. แทนที่ N ด้วย 1
  6. กด+ctrlenter

Auto_increment ควรรีเซ็ตเป็นหนึ่งเมื่อคุณป้อนแถวใหม่ในตาราง

ฉันไม่รู้ว่าจะเกิดอะไรขึ้นถ้าคุณพยายามเพิ่มแถวที่มีค่าฟิลด์ auto_increment อยู่แล้ว

หวังว่าจะช่วยได้!


-2

วิธีที่ดีที่สุดคือลบฟิลด์ด้วย AI และเพิ่มอีกครั้งด้วย AI ทำงานได้กับทุกตาราง


1
ไม่ใช่วิธีที่ดีที่สุดเลยการวางคอลัมน์จะทำให้ข้อมูลในคอลัมน์หายไป
Disha Goyal
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.