Score:0

ไม่สามารถเพิ่มผู้ใช้ใหม่ได้เนื่องจากข้อผิดพลาด "การละเมิดข้อจำกัดด้านความสมบูรณ์: รายการซ้ำ"

ธง in

ตั้งแต่วันที่ 14 ธันวาคม 2021 ไซต์ของฉันเริ่มสร้างผู้ใช้ที่มีรหัสผู้ใช้ต่ำ แม้ว่ารหัสผู้ใช้สูงสุดที่ใช้คือ 9317 ฉัน คิด มีการเปลี่ยนแปลงบางอย่างในการอัปเดตหลักเพื่อใช้ ID ซ้ำซึ่งได้รับการปลดปล่อยโดยการยกเลิกบัญชีผู้ใช้ อย่างไรก็ตาม ฉันค้นพบว่าตั้งแต่วันนั้นเป็นต้นมา ไซต์พยายามใช้ทุก ID ที่ขึ้นต้นด้วย 1 ซ้ำบันทึกข้อผิดพลาดของฉันเต็มไปด้วยข้อผิดพลาดดังนี้:

Drupal\Core\Entity\EntityStorageException: SQLSTATE[23000]: การละเมิดข้อจำกัดด้านความสมบูรณ์:
1062 รายการซ้ำ '281' สำหรับคีย์ 'users.PRIMARY': INSERT INTO "users" ("uuid", "langcode")
ค่า (:db_insert_placeholder_0, :db_insert_placeholder_1); อาร์เรย์ (
[:db_insert_placeholder_0] => 5ff1347c-439f-437e-ba3f-762f7350fda3
[:db_insert_placeholder_1] => en ) ใน Drupal\Core\Entity\Sql\SqlContentEntityStorage->save()
(บรรทัดที่ 811 จาก /home/drupal/webroot/rsc.byu.edu/web/core/lib/Drupal/Core/Entity/
Sql/SqlContentEntityStorage.php)

ตัวอย่างข้างต้นกล่าวว่า รายการซ้ำ '381'. ข้อผิดพลาดต่อไปจะบอกว่า รายการซ้ำ '382' และอื่น ๆ

ผมอ่านกระทู้แนะนำ ลำดับ ตารางมีค่า ID ผู้ใช้ถัดไป ของฉัน ลำดับ ตารางมีค่า 9330ซึ่งจะดีหากมีการใช้งาน แต่มันไม่ใช่

Score:3
ธง in

หลังจากดูอยู่นาน ฉันสังเกตเห็นการสำรองข้อมูลก่อนวันที่ 14 ธันวาคม 2021 ผู้ใช้ ตาราง uid ฟิลด์ถูกกำหนดเป็น Attributes: UNSIGNED ตอนนี้ (18 กุมภาพันธ์ 2565) uid ฟิลด์ถูกกำหนดเป็น แอตทริบิวต์: ไม่มีอะไรและพิเศษ: AUTO_INCREMENT. AUTO_INCREMENT ใหม่

สิ่งนี้ทำให้ฉันต้องทดสอบด้วยสำเนาสำรองของไซต์ของฉัน แน่นอน ก่อนวันที่ 14 ธันวาคม 2021 ทุกครั้งที่ฉันเพิ่มผู้ใช้ ค่าใน ลำดับ ตารางจะเพิ่มขึ้น ที่ไม่เกิดขึ้นในไซต์ที่อัปเดตอีกต่อไป แต่จะล้มเหลวตามที่อธิบายไว้ข้างต้น

วิธีแก้ไขคือเรียกใช้แบบสอบถามต่อไปนี้ในฐานข้อมูล:

ผู้ใช้ ALTER TABLE AUTO_INCREMENT = 3918; # ID สูงสุดที่มีอยู่คือ 3917

สิ่งนี้ช่วยแก้ปัญหาได้ฉันคิดว่าในการอัปเดตหลักที่ติดตั้งในวันที่ 14 ธันวาคม 2021 รหัสเปลี่ยนจากการใช้ ลำดับ ตารางการใช้ AUTO_INCREMENT บน uid สนามใน ผู้ใช้ ตาราง และด้วยเหตุนี้ ฉันไม่สามารถอัปเดตฐานข้อมูลที่จะตั้งค่า AUTO_INCREMENT ได้อย่างถูกต้องใน ผู้ใช้ ตารางเพื่อหลีกเลี่ยงความยุ่งเหยิงนี้

ฉันหวังว่ารายงานความเจ็บปวดของฉันจะช่วยใครบางคนได้

Rod avatar
tr flag
Rod
หลังจากอัปเกรดเป็น Drupal 9.3.12 ผู้ใช้ใหม่จะไม่สามารถสร้างบนไซต์ได้ ข้อความแสดงข้อผิดพลาดที่ฉันได้รับเมื่อพยายามเพิ่มผู้ใช้ผ่านไซต์หรือผ่าน drush คือ: "SQLSTATE[23000]: การละเมิดข้อจำกัดด้านความสมบูรณ์: 1062 รายการซ้ำ '220' สำหรับคีย์ 'users.PRIMARY..." ข้อความค้นหา ALTER TABLE ของคุณบันทึกวันและแก้ไขปัญหาให้ฉัน ขอบคุณมาร์แชล!

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา