私はSQL Serverが新しく、あるテーブルの外部キーを別のテーブルのプライマリキーにリンクするのに苦労しています。ここで私が持っているものです。プライマリキーに外部キーを接続できません
Create table "Projects"
(ProjectID Int identity(1,1) primary key,
ProjectName VarChar(30),
ProjStartDate smalldatetime,
)
そして第三にテーブルをリンクしようとした:
これは、私が2番目のテーブルを作成し
Create table "Employees"
(EmpID Int identity(1,1) primary key,
EmpNo Int,
EmpFName Varchar(30),
EmpLName Varchar(30),
JobID int references JobDetails(JobID)
)
私の最初のテーブルである
Create table "HrsWkd"
(HrsID Int identity(1,1) primary key,
ProjectID int references Projects(ProjectID),
HoursWorked int,
EmpID int references Employees(EmpID)
)
ちなみに、(EmpID)には、「従業員」の無効な列を参照していることを示す赤い波線があります。
私は、このように、この第三のテーブルにデータを入力しようとした場合:
メッセージ547、レベル16、状態0、ライン12を
:insert into HrsWkd values (1,1,50), (1,2,75), (2,3,85)
が、私はこのメッセージが表示されます
INSERTステートメントがFOREIGN KEY制約 "FK__HrsWkd__EmpID__68487DD7"と競合しました。 データベース "New_AP"、テーブル "dbo.Employees"、列 "EmpID"で競合が発生しました。
ステートメントが終了しました。
私は最後の2時間、これで私の髪を引っ張ってきました。私はそれが単純なものだと思っていますが、私はそれを見ることができません。
ありがとうございます!
ありがとうございました。私はそれを試して、問題は残っています。私は問題を誤って特定したと思う。実際の問題は、「HrsWkd」テーブルと、従業員(EmpID)にリンクする最後の行であるようです。 HrsWkdテーブルはEmpIDへのリンクが気に入らないようで、無効な列だと言います。 。 。 。 。 。 – twotoast
私はあなたのテーブル設定を複製した後、愚かな答えに気付きました。しかし、MariaDBを使用してローカルマシン上で実行するには、少し修正する必要があります。それは働いたが、私は別のデータベースエンジンを使用していると言ったように。 SQL Serverに関連したもので、テストするマシンはありません – andre