ฉันไม่สามารถเพิ่มคีย์ต่างประเทศแบบธรรมดาลงในตารางของฉันได้ ก่อนหน้านี้ฉันสามารถเพิ่มคีย์ต่างประเทศได้แต่เฉพาะประเภท INT หรือ BIGINT เท่านั้น ฉันกำลังพยายามทำให้สิ่งนี้เป็นประเภท VARCHAR และได้รับข้อผิดพลาด 1215 พร้อมคำอธิบายที่ไม่สามารถเพิ่มข้อจำกัดของคีย์ต่างประเทศได้
คำสั่งที่ทำให้เกิดความล้มเหลว:
ALTER TABLE `TradingAccount`
ADD CONSTRAINT `email`
FOREIGN KEY (`owner_id`)
REFERENCES `User` (`email`)
ON DELETE NO ACTION
ON UPDATE NO ACTION;
ทั้ง Owner_id และอีเมลเป็นประเภทข้อมูล VARCHAR(255)
ฉันใช้ MySQL Workbench และรู้สึกว่ามีการกำหนดค่าผิดพลาดซึ่งทำให้ฉันใช้ varchar สำหรับข้อจำกัดของคีย์ต่างประเทศได้ ฉันจำเป็นต้องตั้งค่า mysqlworkbench เพื่อใช้ INNODB หรือไม่ หรือเป็นค่าเริ่มต้น
ความช่วยเหลือใด ๆ จะดีมากไชโย
show create table user
,show create table TradingAccount
ได้หรือไม่ หากต้องการ คุณสามารถลบคอลัมน์ที่ไม่ได้ใช้ทั้งหมดได้ แต่ต้องทิ้งดัชนี/คีย์ทุกรายการไว้ในUser
(คุณอาจไม่มีดัชนีในemail
ที่นั่น) - person Solarflare   schedule 31.08.2017