2017-04-14 5 views
0

私のデータベースにテーブルを作成しますが、このエラーを取得維持しようと、私は私が間違ってやっているか不明だがあり、ここに私のSQLコードは次のとおりです。エラー1064(42000):あなたは、エラー

CREATE TABLE Login_details (
username varchar(10) NOT NULL, 
password varchar(10) NOT NULL, 
Employee_ID FOREIGN KEY (`Employee_ID`) REFERENCES `employee_details` 
(`Employee_ID`) 
)ENGINE=InnoDB DEFAULT CHARSET=latin1; 
+1

Employee_IDがテーブルに定義されていません。 – Augwa

+0

また、パスワードをプレーンテキストで保存することを前提にしていますが、間違いなくパスワードをハッシュする必要があります。あなたのやり方は、プログラミング言語によって異なります。 – Augwa

+0

Employee_IDは、employee_detailsという別のテーブルの主キーです。それについて私に知らせてくれてありがとう、私はおそらく私はすべてのテーブルを持っているそれを変更します。 –

答えて

0

以下はこれを行う方法です。 Employee_ID列のINTのデータ型をここでemployee_details詳細テーブルの同じデータ型と一致するように変更します。

しかし、これは1-1の関係であるため、既存のテーブルに追加するだけではなく、これを解消する意味がないように思われます。

CREATE TABLE `Login_details` (
    `Employee_ID` INT NOT NULL, 
    `username` VARCHAR(10) NOT NULL, 
    `password` VARCHAR(10) NOT NULL, 
    PRIMARY KEY (`Employee_ID`), 
    CONSTRAINT `Employee_ID` FOREIGN KEY (`Employee_ID`) REFERENCES `employee_details` (`Employee_ID`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1; 
関連する問題