簡體   English   中英

使用Java的外鍵引用

[英]Foreign key references using Java

我在使外鍵與某些主鍵匹配時遇到一些麻煩。 我不斷收到錯誤"Error: Cannot add foreign key constraint" 我不知道自己在做什么錯,但這可能是因為我凝視了太久了。 有什么建議么?

//customer table
        statement.execute("CREATE TABLE IF NOT EXISTS mydb.Customers ("
                + "  FirstName VARCHAR(21) NOT NULL, "
                + "  StreetAddress VARCHAR(45) NULL, "
                + "  TelephoneNumber VARCHAR(45) NULL, "
                + "  SetOfFrequentFlyerMemberships VARCHAR(45) NULL, "
                + "  PreferredPaymentMethod VARCHAR(45) NULL, "
                + "  Preferences VARCHAR(45) NULL, "
                + "  City VARCHAR(45) NULL, "
                + "  State INT NULL, "
                + "  LastName VARCHAR(45) NULL, "
                + "  CustomerID VARCHAR(45) NOT NULL, "
                + "  Customerscol VARCHAR(45) NOT NULL, "
                + "  PRIMARY KEY (CustomerID, Preferences))");

        //reservation table
        statement.execute("CREATE TABLE IF NOT EXISTS mydb.Reservations ( "
                + "  CustomerID INT NOT NULL, "
                + "  TravelAgent VARCHAR(45) NOT NULL, "
                + "  FlightID INT NULL, "
                + "  PaymentType VARCHAR(45) NULL, "
                + "  StatusOfReservation VARCHAR(45) NULL, "
                + "  ReservationID VARCHAR(45) NOT NULL, "
                + "  PaymentID INT NOT NULL, "
                + "  Preferences VARCHAR(45) NULL, "
                + "  PRIMARY KEY (ReservationID), "
                + "  CONSTRAINT fk_Reservations_Customers1 "
                + "  FOREIGN KEY (CustomerID) "
                + "  REFERENCES mydb.Customers(CustomerID), "
                + "  CONSTRAINT fk_Reservations_Payment1 "
                + "  FOREIGN KEY (PaymentID) "
                + "  REFERENCES mydb.Payment(PaymentID), "
                + "  CONSTRAINT fk_Reservations_Flights1 "
                + "  FOREIGN KEY (FlightID) "
                + "  REFERENCES mydb.Flights(FlightID), "
                + "  CONSTRAINT fk_Reservations_Preference1 "
                + "  FOREIGN KEY (Preferences) "
                + "  REFERENCES mydb.Customers(Preferences))");

            //frequent flyer membership
            statement.execute("CREATE TABLE IF NOT EXISTS mydb.FrequentFlyerMemberships ( "
                + "  FrequentFlyerID INT NOT NULL, "
                + "  customerID VARCHAR(45) NULL, "
                + "  ReservationID VARCHAR(45) NULL, "
                + "  PRIMARY KEY (FrequentFlyerID), "
                + "  CONSTRAINT fk_FrequentFlyerMemberships_Reservations1 "
                + "  FOREIGN KEY (ReservationID) "
                + "  REFERENCES mydb.Reservations(ReservationID))");

這不是我的全部代碼,但是這些是我似乎遇到問題的唯一塊。

像下面的腳本一樣使用,以使外鍵成為其他表的組合鍵

CONSTRAINT fk_Reservations_Customers1   
FOREIGN KEY (CustomerID,Preferences)   
REFERENCES stackoverflowprob.Customers(CustomerID,Preferences));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM