[解決済み】参照するテーブルにプライマリーキーやキャンディデートキーがない
2022-02-06 23:20:15
質問
エラーが発生しました。参照されるテーブルに主キーまたは候補キーがありません。 dbo.Customers'の参照先カラムリストと一致する キー 'FK_Reservation_Customers_FrstNme FOREIGN KEY' になります。
DROP TABLE dbo.Customers;
DROP TABLE dbo.Staff;
DROP TABLE dbo.Rooms;
DROP TABLE dbo.Reservation;
GO
CREATE TABLE "Customers"(
CustomerID int IDENTITY (1,1) NOT NULL,
FirstName nvarchar(20) NULL,
LastName nvarchar(20) NULL,
StreetNo int NULL,
City nvarchar(20) NULL,
PostCode nvarchar(20) NULL,
Email nvarchar(50) NULL,
CONSTRAINT PK_Customers PRIMARY KEY
(
CustomerID
)
)
CREATE TABLE "Staff"(
StaffID nvarchar(20) NOT NULL,
Pass nvarchar(20) NOT NULL,
CONSTRAINT PK_Staff PRIMARY KEY
(
StaffID
)
)
CREATE TABLE "Rooms"(
RoomNo int NOT NULL,
RoomType nvarchar(20) NULL,
PricePerNight money NULL,
MaximumOccupancy int NULL,
No0fBeds int NULL,
NoOfBathrooms int NULL,
Entertainment bit NULL,
RoomService bit NULL,
Gym bit NULL,
CONSTRAINT PK_Rooms PRIMARY KEY
(
RoomNo
)
)
CREATE TABLE "Reservation"(
ReservationID int IDENTITY (1,1) NOT NULL,
CustomerID int NOT NULL,
FirstName nvarchar(20) NULL,
LastName nvarchar(20) NULL,
RoomType nvarchar(20) NULL,
RoomNo int NOT NULL,
CheckInDate date NULL,
CheckOutDate date NULL,
CONSTRAINT PK_Reservation PRIMARY KEY
(
ReservationID
),
CONSTRAINT FK_Reservation_Customers_CustID FOREIGN KEY
(
CustomerID
)
REFERENCES dbo.Customers
(
CustomerID
),
CONSTRAINT FK_Reservation_Customers_FrstNme FOREIGN KEY
(
FirstName
)
REFERENCES dbo.Customers
(
FirstName
)
)
どなたか、ここで何が起こっているのか、どうすれば解決できるのか、教えていただけないでしょうか。外部キーにしたい他のすべてのキーでも同じ問題が発生します。ただし、主キーを参照したい場合は別です。
解決方法は?
外部キーを作成する場合、主キーか、一意制約のあるフィールドを参照する必要があります。
顧客名を表示したい場合は、外部キーにCustomerIDを参照させ、その結果をjoinで表示します。
関連
-
[解決済み】Teradata - 計算中に数値のオーバーフローが発生しました。
-
[解決済み】SQL ServerでIdentityカラムを更新する方法は?
-
[解決済み] pg_restoreです。[archiver] 入力ファイルはテキスト形式のダンプであるように見えます。psql を使用してください。
-
[解決済み] ORA-01735: 無効な ALTER TABLE オプション - ヒキガエル
-
[解決済み] リンクされたサーバーの NULL に対して OLE DB プロバイダー Microsoft.Jet.OLEDB.4.0 のインスタンスを作成できません。
-
[解決済み] SQLクエリで2つの列から値を引き算する
-
[解決済み] Presto SQL ピボッティング(言葉は悪いですが)データ
-
[解決済み] 列名または提供された値の数がテーブル定義と一致しません。
-
[解決済み] ORA-01821: ISO 8601 のローカルタイム付き日付のフォーマットが認識されないエラー
-
[解決済み] MySQLのON句の不明なカラム
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】オペランド型の衝突:intはdateと互換性がない + INSERT文はFOREIGN KEY制約と衝突した
-
[解決済み] varchar 値 'simple, ' をデータ型 int に変換する際に変換に失敗しました。
-
[解決済み】SQL ServerでIdentityカラムを更新する方法は?
-
[解決済み】SQL Server: 無効なカラム名
-
[解決済み] INSERT ステートメントが FOREIGN KEY 制約と競合する - SQL Server
-
[解決済み] SQL Server サブクエリが 1 つ以上の値を返しました。これは、サブクエリが =, !=, <, <= , >, >= のように続く場合は許可されません。
-
[解決済み] SQLクエリで2つの列から値を引き算する
-
[解決済み] 検索エラー ORA-00932: 不整合なデータ型: 期待された DATE は NUMBER になりました。
-
[解決済み] PostgreSQL - json 型の等値演算子を識別できませんでした。
-
[解決済み] VBA - ADODB.CommandTextの実行