ข้อผิดพลาด Mysql 1452 - ไม่สามารถเพิ่มหรืออัปเดตแถวลูกได้: ข้อ จำกัด รหัสต่างประเทศล้มเหลว


237

ฉันมีปัญหาแปลก ๆ เล็กน้อย ฉันกำลังพยายามเพิ่มคีย์ต่างประเทศให้กับตารางหนึ่งที่อ้างอิงอีกอัน แต่มันล้มเหลวด้วยเหตุผลบางอย่าง ด้วยความรู้ที่ จำกัด ของฉันเกี่ยวกับ MySQL สิ่งเดียวที่อาจเป็นที่สงสัยก็คือมีคีย์ต่างประเทศในตารางอื่นที่อ้างอิงถึงสิ่งที่ฉันพยายามอ้างอิง

ฉันได้ทำSHOW CREATE TABLEแบบสอบถามในทั้งสองตารางsourcecodes_tagsเป็นตารางที่มีคีย์ต่างประเทศsourcecodesเป็นตารางอ้างอิง

CREATE TABLE `sourcecodes` (
 `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
 `user_id` int(11) unsigned NOT NULL,
 `language_id` int(11) unsigned NOT NULL,
 `category_id` int(11) unsigned NOT NULL,
 `title` varchar(40) CHARACTER SET utf8 NOT NULL,
 `description` text CHARACTER SET utf8 NOT NULL,
 `views` int(11) unsigned NOT NULL,
 `downloads` int(11) unsigned NOT NULL,
 `time_posted` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
 PRIMARY KEY (`id`),
 KEY `user_id` (`user_id`),
 KEY `language_id` (`language_id`),
 KEY `category_id` (`category_id`),
 CONSTRAINT `sourcecodes_ibfk_3` FOREIGN KEY (`language_id`) REFERENCES `languages` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
 CONSTRAINT `sourcecodes_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
 CONSTRAINT `sourcecodes_ibfk_2` FOREIGN KEY (`category_id`) REFERENCES `categories` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1

CREATE TABLE `sourcecodes_tags` (
 `sourcecode_id` int(11) unsigned NOT NULL,
 `tag_id` int(11) unsigned NOT NULL,
 KEY `sourcecode_id` (`sourcecode_id`),
 KEY `tag_id` (`tag_id`),
 CONSTRAINT `sourcecodes_tags_ibfk_1` FOREIGN KEY (`tag_id`) REFERENCES `tags` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=latin1

นี่คือรหัสที่สร้างข้อผิดพลาด:

ALTER TABLE sourcecodes_tags ADD FOREIGN KEY (sourcecode_id) REFERENCES sourcecodes (id) ON DELETE CASCADE ON UPDATE CASCADE

2
คุณสามารถโพสต์คำสั่ง insert / update ของคุณซึ่งทำให้เกิดข้อผิดพลาดได้หรือไม่
Zed

64
ตารางของคุณว่างเปล่าเมื่อคุณเพิ่มรหัสต่างประเทศนี้หรือไม่
Zed

12
ลองเรียกใช้คิวรีนี้เพื่อดูว่ามี sourcecode_id ใด ๆ ที่ไม่ใช่ id จริงหรือไม่: SELECT sourcecode_id จาก sourcecodes_tags WHERE sourcecode_id ไม่ได้อยู่ใน (เลือก id จากซอร์สโค้ด AS tmp);
Zed

11
ขอบคุณ Zed นั่นเป็นปัญหาหนึ่งในตารางที่มีข้อมูลอยู่ในนั้น การคิดเกี่ยวกับมันตอนนี้มันสมเหตุสมผลแล้วที่จะล้มเหลวเพราะมีสิ่งต่าง ๆ ที่อ้างอิงรายการที่ไม่มีอยู่ แต่ฉันจะไม่เดาเลย ขอบคุณ!
ซิม

2
ทำไมมันล้มเหลวถ้าตารางว่างเปล่า
theblackpearl

คำตอบ:


226

ดูเหมือนว่าsourcecodes_tagsตารางของคุณมีsourcecode_idค่าที่ไม่มีอยู่ในsourcecodesตารางอีกต่อไป คุณต้องกำจัดสิ่งเหล่านั้นก่อน

นี่คือแบบสอบถามที่สามารถค้นหา ID เหล่านั้น:

SELECT DISTINCT sourcecode_id FROM 
   sourcecodes_tags tags LEFT JOIN sourcecodes sc ON tags.sourcecode_id=sc.id 
WHERE sc.id IS NULL;

UPDATE sourcecodes_tags SET sourcecode_id = NULL WHERE sourcecode_id NOT IN (SELECT id FROM sourcecodes)ควรช่วยกำจัด ID เหล่านั้น หรือถ้าnullไม่ได้รับอนุญาตให้sourcecode_idลบแถวเหล่านั้นออกหรือเพิ่มค่าที่หายไปเหล่านั้นลงในsourcecodesตาราง
naXa

ฉันคิดเหมือนกัน แต่สำหรับฉันSELECT Tchild.id FROM Tchild INNER JOIN Tmain ON Tmain.id = Tchild.fk_id WHERE Tmain.id IS NULLไม่ได้คืนอะไรเลยปัญหาอยู่ที่อื่น!
Meloman

อ่านี่เป็นปัญหาสำหรับฉัน ฉันพยายามเรียกใช้UPDATE `homestead`.`automations` SET `deleted_at`=NULL WHERE deleted_at IS NOT NULL;ซึ่งไม่เกี่ยวข้องกับรหัสต่างประเทศเลยดังนั้นฉันจึงสับสน แต่ความจริงที่ว่าตารางผู้ติดต่อของฉันขาดเร็กคอร์ดบางอย่างที่ตารางการทำให้เป็นอัตโนมัติที่อ้างถึงทำให้เกิด "รหัสข้อผิดพลาด: 1452 นี้ไม่สามารถเพิ่มหรืออัปเดตแถวลูกได้: ข้อ จำกัด รหัสต่างประเทศล้มเหลว"
Ryan

99

ฉันมีปัญหาเดียวกันกับฐานข้อมูล MySQL ของฉัน แต่ในที่สุดฉันก็มีทางออกที่เหมาะกับฉัน
เนื่องจากในตารางของฉันทุกอย่างดีจากมุมมอง mysql (ทั้งสองตารางควรใช้เครื่องมือ InnoDB และประเภทข้อมูลของแต่ละคอลัมน์ควรเป็นประเภทเดียวกันซึ่งมีส่วนร่วมในข้อ จำกัด คีย์ต่างประเทศ)
สิ่งเดียวที่ฉันทำคือปิดการใช้งานการตรวจสอบคีย์ต่างประเทศและเปิดใช้งานในภายหลังหลังจากดำเนินการการทำงานของรหัสต่างประเทศ
ขั้นตอนที่ฉันทำ:

SET foreign_key_checks = 0;
alter table tblUsedDestination add constraint f_operatorId foreign key(iOperatorId) references tblOperators (iOperatorId); Query
OK, 8 rows affected (0.23 sec) Records: 8  Duplicates: 0  Warnings: 0
SET foreign_key_checks = 1;

49
foreign_key_checks มีเหตุผล หากคุณไม่สามารถเพิ่มคีย์ต่างประเทศได้เนื่องจากมันเป็นการละเมิดข้อ จำกัด คุณควรแก้ไขข้อมูลก่อน การปิดการตรวจสอบจากนั้นเพิ่มคีย์ทำให้คุณอยู่ในสถานะไม่สอดคล้องกัน การตรวจสอบกุญแจต่างประเทศเพิ่มค่าใช้จ่ายหากคุณไม่ต้องการใช้มันให้ใช้ myisam แทน
cs_alumnus

5
@AbuSadatMohammedYasin ไม่ควร: คำถามถามว่า "เกิดอะไรขึ้น" และคำตอบนี้ไม่ได้พยายามอธิบาย ตามที่ระบุไว้ใน cs_alumnus มีปัญหาใหญ่กว่า: ค่าใหม่ทั้งหมดที่ควรอ้างอิงถึงค่าอื่นในตารางอื่น (เช่นคีย์ต่างประเทศควรทำ) อาจชี้ไปที่ไม่มีอะไรสร้างสถานะที่ไม่สอดคล้องกัน คำอธิบายสั้น ๆ และมีประสิทธิภาพของ Cayetanoช่วยให้คุณค้นหาค่าที่คุณควรอัปเดตก่อนสร้างข้อ จำกัด ดังนั้นคุณจะไม่แปลกใจกับข้อความค้นหาที่ควรส่งคืนค่าที่ควรมีอยู่!
Armfoot

55

ใช้NOT INเพื่อค้นหาข้อ จำกัด ที่ข้อจำกัด :

SELECT column FROM table WHERE column NOT IN 
(SELECT intended_foreign_key FROM another_table)

ดังนั้นโดยเฉพาะอย่างยิ่ง:

SELECT sourcecode_id FROM sourcecodes_tags WHERE sourcecode_id NOT IN 
(SELECT id FROM sourcecodes)

แก้ไข: INและNOT INผู้ประกอบการเป็นที่รู้จักกันเร็วกว่าJOINผู้ประกอบการเช่นเดียวกับที่ง่ายต่อการสร้างและทำซ้ำ


1
ดังนั้นถ้าฉันเข้าใจสิ่งนี้อย่างถูกต้องเราสามารถเพิ่ม foreign key ไปยังตารางที่มีข้อมูลอยู่แล้ว แต่ถ้ามีแถวย่อยสำหรับแต่ละแถวในตารางหลัก หากไม่มีแถวลูกสำหรับแต่ละแถวในตารางหลัก (ซึ่งเป็นสิ่งที่แบบสอบถามของคุณค้นพบ) ดังนั้นสคริปต์ต่างประเทศจะล้มเหลว
Vincent

@ เร็ว ๆ นี้ถ้าหากตารางหลักหมายถึงตารางที่ถูกอ้างอิงแล้วใช่! ดังนั้นด้วยการเลือกของ Cayetano คุณจะได้แถวทั้งหมดที่คุณจำเป็นต้องปรับปรุง / ลบออกจากตาราง "ลูก" ของคุณก่อนที่คุณจะเพิ่มข้อ จำกัด ใหม่ (FK) เมื่อพวกเขาทั้งหมดชี้ไปที่ค่าใน "another_table" แล้วคุณจะไป!
Armfoot

23

ตัดทอนตารางแล้วลองเพิ่ม FK จำกัด

ฉันรู้ว่าโซลูชันนี้ค่อนข้างน่าอึดอัดใจ แต่ใช้งานได้ 100% แต่ฉันยอมรับว่านี่ไม่ใช่วิธีแก้ปัญหาที่เหมาะสมที่สุดในการจัดการกับปัญหา แต่ฉันหวังว่ามันจะช่วยได้


4
ไม่จำเป็นต้องตัดทอนทุกสิ่ง "UPDATE sourcecodes_tags SET sourcecode_id = NULL ซึ่ง sourcecode_id ไม่ได้อยู่ใน (เลือก id จากซอร์สโค้ด)" ควรจะเพียงพอ หรือหากไม่อนุญาตให้ใช้ null ใน "sourcecode_id" ให้ลบแถวเหล่านั้นออกหรือเพิ่มค่าที่หายไปเหล่านั้นลงในตาราง "sourcecodes"
Torben

1
ในบางครั้งหากข้อมูลเพิ่มขึ้นอัตโนมัติ PK ก็จะบังคับให้คุณตัดทอน
François Breton

2
@ShankarDamodaran ไม่แน่ใจว่าทำไมการตัดตารางออก แต่วิธีนี้ใช้ได้ผลดีสำหรับฉัน ฉันสามารถรับความสัมพันธ์ของฉันเพื่อทำงาน ... ขอบคุณ!
MizAkita

@MizAkita ใช้งานได้เนื่องจากลบแถวที่ไม่มีค่าที่สอดคล้องกันในตารางอื่น ๆ ทำให้สามารถสร้างข้อ จำกัด ใหม่ได้ หากคุณเพิ่งพบแถวเหล่านั้นและอัปเดตหรือลบออก (เช่นข้อเสนอแนะของ Cayetano ) คุณไม่จำเป็นต้องลบแถวอื่น ๆ ...
Armfoot

@Armfoot - ฉันมีปัญหานี้เมื่อเพิ่มแถวแรกในตารางด้วยรหัสต่างประเทศ ดังนั้นฉันไม่มีแถวที่จะค้นหา
Krewetka

16

สำหรับฉันปัญหานี้แตกต่างกันเล็กน้อยและง่ายสุดในการตรวจสอบและแก้ไข

คุณต้องมั่นใจว่าทั้งสองตารางของคุณนั้นเป็น InnoDB หากหนึ่งในตารางคือตารางอ้างอิงคือ MyISAM ข้อ จำกัด จะล้มเหลว

    SHOW TABLE STATUS WHERE Name =  't1';

    ALTER TABLE t1 ENGINE=InnoDB;

14

สิ่งนี้จะเกิดขึ้นเช่นกันเมื่อตั้งค่า foreign key เป็น parent.id เป็น child.column หาก child.column มีค่าเป็น 0 อยู่แล้วและไม่มีค่า parent.id เป็น 0

คุณจะต้องให้แน่ใจว่าแต่ละ child.column เป็น NULL หรือมีค่าที่มีอยู่ใน parent.id

และตอนนี้ฉันได้อ่านข้อความที่เขียนแล้วนั่นคือสิ่งที่เขาตรวจสอบ


14

ฉันมีปัญหาเดียวกันวันนี้ ฉันทดสอบสี่สิ่งบางอย่างได้กล่าวถึงแล้ว:

  1. มีค่าใด ๆ ในคอลัมน์ลูกของคุณที่ไม่มีอยู่ในคอลัมน์หลัก (นอกเหนือจาก NULL ถ้าคอลัมน์ลูกเป็นโมฆะ)

  2. คอลัมน์ลูกและพาเรนต์มีประเภทข้อมูลเดียวกันหรือไม่

  3. มีดัชนีในคอลัมน์พาเรนต์ที่คุณกำลังอ้างอิงอยู่หรือไม่? MySQL ดูเหมือนจะต้องการสิ่งนี้ด้วยเหตุผลด้านประสิทธิภาพ ( http://dev.mysql.com/doc/refman/5.5/en/create-table-foreign-keys.html )

  4. และอันนี้แก้มันสำหรับฉัน: ตารางทั้งสองมีการเปรียบเทียบที่เหมือนกันหรือไม่?

ฉันมีหนึ่งตารางใน UTF-8 และอีกอันใน iso-something นั่นไม่ได้ผล หลังจากเปลี่ยน iso-table เป็น UTF-8 collation สามารถเพิ่มข้อ จำกัด ได้โดยไม่มีปัญหา ในกรณีของฉัน phpMyAdmin ไม่ได้แสดงตารางลูกในการเข้ารหัสแบบ iso ในเมนูแบบเลื่อนลงเพื่อสร้างข้อ จำกัด กุญแจต่างประเทศ


7

ดูเหมือนว่ามีบางค่าที่ไม่ถูกต้องสำหรับคอลัมน์บรรทัด 0 ที่ไม่ใช่คีย์ต่างประเทศที่ถูกต้องดังนั้น MySQL ไม่สามารถกำหนดข้อ จำกัด คีย์ต่างประเทศได้

คุณสามารถทำตามขั้นตอนเหล่านี้:

  1. วางคอลัมน์ที่คุณพยายามตั้งค่าข้อ จำกัด FK ไว้

  2. เพิ่มอีกครั้งและตั้งค่าเริ่มต้นเป็น NULL

  3. ลองตั้งค่าข้อ จำกัด ของรหัสต่างประเทศอีกครั้ง


5

ฉันต้องการปัญหาเดียวกันฉันตรวจสอบแถวของตารางของฉันและพบว่ามีความไม่ลงรอยกันกับมูลค่าของเขตข้อมูลที่ฉันต้องการกำหนดคีย์ต่างประเทศ ฉันแก้ไขค่าเหล่านั้นแล้วลองอีกครั้งและปัญหาได้รับการแก้ไข


4

ฉันสิ้นสุดลบข้อมูลทั้งหมดในตารางของฉันและเรียกใช้การเปลี่ยนแปลงอีกครั้ง มันได้ผล. ไม่ใช่รุ่นที่ยอดเยี่ยม แต่ประหยัดเวลาโดยเฉพาะแอปพลิเคชันของคุณยังอยู่ในช่วงการพัฒนาโดยไม่มีข้อมูลลูกค้าใด ๆ


4

ลองนี้

SET foreign_key_checks = 0;

ALTER TABLE sourcecodes_tags ADD FOREIGN KEY (sourcecode_id) REFERENCES sourcecodes (id) ON DELETE CASCADE ON UPDATE CASCADE

SET foreign_key_checks = 1;

2

ฉันมีปัญหาเดียวกันนี้แน่นอนเกี่ยวกับสามครั้งที่แตกต่างกัน ในแต่ละกรณีเป็นเพราะหนึ่ง (หรือมากกว่า) ของบันทึกของฉันไม่สอดคล้องกับรหัสต่างประเทศใหม่ คุณอาจต้องการอัปเดตระเบียนที่มีอยู่ของคุณเพื่อปฏิบัติตามข้อ จำกัด ทางไวยากรณ์ของ foreign key ก่อนที่จะพยายามเพิ่มคีย์เอง ตัวอย่างต่อไปนี้ควรแยกบันทึกปัญหา:

SELECT * FROM (tablename)
    WHERE (candidate key) <> (proposed foreign key value) 
        AND (candidate key) <> (next proposed foreign key value)

ทำซ้ำAND (candidate key) <> (next proposed foreign key value)ภายในแบบสอบถามของคุณสำหรับแต่ละค่าในคีย์ต่างประเทศ

หากคุณมีบันทึกจำนวนมากสิ่งนี้อาจเป็นเรื่องยาก แต่ถ้าตารางของคุณมีขนาดเล็กพอสมควรก็ไม่ควรใช้เวลานานเกินไป ฉันไม่ได้มหัศจรรย์สุดในไวยากรณ์ SQL แต่สิ่งนี้ได้แยกปัญหาสำหรับฉันเสมอ


2

ล้างข้อมูลทั้งสองตารางของคุณและเรียกใช้คำสั่ง มันจะทำงาน.


VHanded ให้คำตอบเดียวกันเมื่อ 3 ปีก่อน หวังว่าไม่มีข้อมูลที่สำคัญใด ๆ ในตาราง ...
xlecoustillier

2

ฉันได้รับข้อผิดพลาดนี้เมื่อใช้ Laravel และมีคารมคมคายการพยายามสร้างลิงก์ต่างประเทศจะทำให้เกิด 1452 ปัญหาเกิดจากการขาดข้อมูลในตารางที่เชื่อมโยง

โปรดดูตัวอย่างที่นี่: http://mstd.eu/index.php/2016/12/02/laravel-eloquent-integrity-constraint-violation-1452-foreign-key-constraint/


1

ฉันกำลังเตรียมโซลูชันนี้และตัวอย่างนี้อาจช่วยได้

ฐานข้อมูลของฉันมีสองตาราง (อีเมลและ credit_card) พร้อมคีย์หลักสำหรับรหัสของพวกเขา ตารางอื่น (ไคลเอนต์) อ้างถึงรหัสตารางนี้เป็นคีย์ต่างประเทศ ฉันมีเหตุผลที่จะมีอีเมลนอกเหนือจากข้อมูลลูกค้า

ก่อนอื่นฉันจะแทรกข้อมูลแถวสำหรับตารางอ้างอิง (อีเมล, credit_card) จากนั้นคุณจะได้รับ ID สำหรับแต่ละ ID เหล่านั้นจำเป็นต้องใช้ในตารางที่สาม (ไคลเอนต์)

หากคุณไม่แทรกแถวแรกในตารางที่อ้างอิง MySQL จะไม่สามารถสร้างความสอดคล้องเมื่อคุณแทรกแถวใหม่ในตารางที่สามที่อ้างอิงถึงกุญแจต่างประเทศ

หากคุณแทรกแถวอ้างอิงสำหรับตารางอ้างอิงแล้วแถวที่อ้างถึงคีย์ต่างประเทศจะไม่มีข้อผิดพลาดเกิดขึ้น

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


mysql> แทรกลงในค่าอีเมล (อีเมล) ('xxx@yyy.com'); mysql> แทรกลงในค่า ndtc (ndtc, ปี, เดือน) ('1111222233334444', '2000', '01'); mysql> แทรกลงในไคลเอนต์ (nombres, apellidos, telefono, idNDTC, idEmail) ค่า ('myname', 'myapp', '5555555555', 1,1);
SubstanceMX

1

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

ดังนั้นหากมีการกำหนดคอลัมน์จะถูกกำหนดให้กับ id แถวของตารางอื่นตรวจสอบให้แน่ใจว่ามีแถวที่อยู่ในตารางมิฉะนั้นข้อผิดพลาดนี้จะปรากฏขึ้น


1

คุณสามารถลอง exapmple นี้

 START TRANSACTION;
 SET foreign_key_checks = 0;
 ALTER TABLE `job_definers` ADD CONSTRAINT `job_cities_foreign` FOREIGN KEY 
 (`job_cities`) REFERENCES `drop_down_lists`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
 SET foreign_key_checks = 1;
 COMMIT;

หมายเหตุ: หากคุณใช้ phpmyadmin เพียงแค่ยกเลิกการเลือกเปิดใช้งานการตรวจสอบคีย์ต่างประเทศ

เป็น ตัวอย่าง ป้อนคำอธิบายรูปภาพที่นี่

หวังว่าการแก้ปัญหานี้จะแก้ไขปัญหาของคุณ :)


1

คุณต้องตอบคำถามเดียว:

ตารางของคุณเก็บข้อมูลอยู่แล้วหรือไม่ (โดยเฉพาะตารางรวมคีย์ต่างประเทศ)

หากคำตอบคือใช่แล้วสิ่งเดียวที่คุณต้องทำคือการลบบันทึกทั้งหมดจากนั้นคุณมีอิสระที่จะเพิ่มรหัสต่างประเทศใด ๆ ในตารางของคุณ

ลบคำแนะนำ: จากลูก (ซึ่งรวมถึงตารางคีย์ต่างประเทศ) ไปยังตารางหลัก

เหตุผลที่คุณไม่สามารถเพิ่มใน foreign key หลังจากการป้อนข้อมูลเกิดจากความไม่สอดคล้องกันของตารางคุณจะจัดการกับ foreign key ใหม่ในอดีตที่กรอกข้อมูลในตารางอย่างไร

หากคำตอบคือไม่ทำตามคำแนะนำอื่น ๆ


0
UPDATE sourcecodes_tags
SET sourcecode_id = NULL
WHERE sourcecode_id NOT IN (
  SELECT id FROM sourcecodes);

ควรช่วยกำจัด ID เหล่านั้น หรือถ้าnullไม่ได้รับอนุญาตให้sourcecode_idลบแถวเหล่านั้นออกหรือเพิ่มค่าที่หายไปเหล่านั้นลงในsourcecodesตาราง


0

ฉันมีปัญหาเดียวกันและพบวิธีแก้ปัญหาวางNULLแทนNOT NULLในคอลัมน์คีย์ต่างประเทศ นี่คือแบบสอบถาม:

ALTER TABLE `db`.`table1`
ADD COLUMN `col_table2_fk` INT UNSIGNED NULL,
ADD INDEX `col_table2_fk_idx` (`col_table2_fk` ASC),
ADD CONSTRAINT `col_table2_fk1`
FOREIGN KEY (`col_table2_fk`)
REFERENCES `db`.`table2` (`table2_id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION;

MySQL ได้ดำเนินการค้นหานี้!


0

ในกรณีของฉันฉันสร้างตารางใหม่ที่มีโครงสร้างเดียวกันสร้างความสัมพันธ์กับตารางอื่น ๆ จากนั้นแยกข้อมูลใน CSV จากตารางเก่าที่มีปัญหาจากนั้นนำเข้า CSV ไปยังตารางใหม่และตรวจสอบคีย์ต่างประเทศที่ปิดใช้งาน และปิดใช้งานการขัดจังหวะการนำเข้าข้อมูลของฉันทั้งหมดจะถูกแทรกลงในตารางใหม่ที่ไม่มีปัญหาเรียบร้อยแล้วจึงลบตารางเก่า

มันใช้งานได้สำหรับฉัน

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