外部キーとしてvarchar値を追加しようとしています。MySQL - varcharを外部キーとして追加する
Password_Encryptionテーブル内にKEYを追加しようとしましたが、動作しませんでした。それからINDEXを作成しようとしていて、それもうまくいきませんでした。
エラーは「エラーコード:1215:外部キー制約を追加できません」です。
私は、Password_EncryptionのPRIMARY KEY行のカンマでエラーが発生することを認識しています。
私はこれに関連しているテーブルがある
CREATE TABLE Login (
login_id INT NOT NULL AUTO_INCREMENT,
login_date DATE NOT NULL,
customer_id INT DEFAULT 0,
business_id INT DEFAULT 0,
password_entered VARCHAR(16) DEFAULT 'password',
password_encryption VARCHAR(20),
PRIMARY KEY (login_id, login_date)
);
CREATE TABLE Password_Encryption (
encryption_id INT NOT NULL AUTO_INCREMENT,
login_id INT NOT NULL,
password_encryption VARCHAR(20),
password_saved VARCHAR(16) NOT NULL,
is_valid ENUM('false','true') NOT NULL DEFAULT 'false',
/*KEY pw_enc (password_encryption),*/
PRIMARY KEY (encryption_id),
/*CONSTRAINT pw_enc FOREIGN KEY (password_encryption) REFERENCES Login
(password_encryption)*/
);
CREATE INDEX pw_enc ON Password_Encryption(password_encryption);
ALTER TABLE Password_Encryption
ADD CONSTRAINT pw_enc FOREIGN KEY (password_encryption) REFERENCES Login (password_encryption);
また、スタックオーバーフローに関する他の回答も見てきました。私は能力を最大限引き出そうと努力しましたが、まだそれを働かせることはできません。 –
2つのテーブルの関係を記述してください。 –
Password_Encryptionテーブルのpassword_encryption変数は、同じ名前付き変数を持つLoginテーブルから取得された外部キーです。私はそれのコードを知らない。 –