Kesalahan SQL 1215 tidak dapat menambahkan kunci asing

Saya tidak dapat menambahkan kunci asing sederhana ke meja saya. Saya sebelumnya sudah bisa menambahkan kunci asing tetapi hanya bertipe INT atau BIGINT. Saya mencoba membuat tipe ini VARCHAR dan menerima kesalahan 1215 dengan deskripsi tidak dapat menambahkan batasan kunci asing.

Perintah yang menyebabkan kegagalan:

 ALTER TABLE `TradingAccount` 
 ADD CONSTRAINT `email`
   FOREIGN KEY (`owner_id`)
   REFERENCES `User` (`email`)
   ON DELETE NO ACTION
   ON UPDATE NO ACTION;

Owner_id dan email keduanya bertipe data VARCHAR(255).

Saya menggunakan MySQL Workbench dan merasa ada kesalahan konfigurasi yang tidak memungkinkan saya menggunakan varchar untuk batasan kunci asing? Apakah saya perlu mengatur mysqlworkbench untuk menggunakan INNODB atau itu default.

Bantuan apa pun akan sangat membantu, tepuk tangan.


person Community    schedule 31.08.2017    source sumber
comment
Tipe datanya harus sama, jadi Anda harus merujuk varchar ke varchar (yang mungkin bukan id pemiliknya).   -  person Solarflare    schedule 31.08.2017
comment
owner_id dan email keduanya bertipe varchar(255)   -  person    schedule 31.08.2017
comment
Bisakah Anda menambahkan deskripsi tabel dari kedua tabel (show create table user, show create table TradingAccount? Jika mau, Anda dapat menghapus semua kolom yang tidak digunakan, tetapi harus membiarkan setiap indeks/kunci di User di dalamnya (Anda mungkin tidak memiliki indeks di email di sana).   -  person Solarflare    schedule 31.08.2017


Jawaban (1)


Saya menduga TradingAccount.owner_id dan/atau OwnerMaster.owner_id bukan tipe data yang sama persis dengan TradingAccount.owner_id dan OwnerMaster.owner_id.

person Abhishek Sharma    schedule 31.08.2017
comment
Keduanya adalah varchar(255) - person ; 31.08.2017